Nice one

But I fear it's not fully compatible:
- What about complete phrases enclosed by quotes?
I think your implementation will treat it as individual words.
- What about asterisk?
I think this is a major problem. If I search for hack (with mySQL 4) it would not return rows containing hacks - your implementation would.
If I search for hack* (with mySQL 4) it would return rows containing hack, hacks, etc. - your implementation would return nothing.
- What about negation?
It seems like you don't support this at all, treating it as part of a word.
Now if I search for ~vB3 (with mySQL 4) it would return rows that do not contain vB3, your implementation would return those only.
- What about sub-expressions?
- What if you do not put a plus/miuns in front of a word?
It seems link in this case your implementation would strip off the first character and treat them as NOT words.
Although I think the performance wouldn't be good. Anyway, it's in interesting point to start with.