I accidentally answered a [question](https://stackoverflow.com/questions/4481006/word-association-counting) where the original problem involved splitting sentence to separate words. 

And the author [suggested to use `BreakIterator`](https://stackoverflow.com/questions/4481006/word-association-counting/4481053#4481053) to tokenize input strings and some people liked this idea.

I just don't get that madness: how 25 lines of complicated code can be better than a simple one-liner with regexp? 

Please, explain me the pros of using BreakIterator and the real cases when it should be used. 

If it's really so cool and proper then I wonder: do you really use the approach with `BreakIterator` in your projects?