Alexey Zakhlestin has written an ode to the mb_ereg functions - a set of regular expression based functions that are more than just for unicode strings:
There is a common misunderstanding, that mb_ereg_* functions are just unicode counterparts of ereg_* functions: slow and non-powerful. That's as far from truth as it can be. mb_ereg_* functions are based on oniguruma regular expressions library. And oniguruma is one of the fastest and most capable regular expression libraries out there. Couple of years ago I made a little speed-test.
He talks about some of the options you can give it (ignore case, find-longest, multiline) and modes (grep, java, perl, etc). A few code examples are also included.