QUOTE(NickDMax @ 7 Jun, 2009 - 05:47 PM)

Although from what I am getting on the internet Xpressive is actually slower than other regular expression libraries (even though you would think that with so much work being done at compile time it would be faster -- in fact some people have written that very thought -- but the evidence seems to be to the contrary).
In many situations where regex use is heavy, evaluation needs to happen far more times than compilation, so if the evaluation is slower in Boost.Xpressive (which could be due to compromised compilation quality due by not having a full programming language), the end result is likely to be similar.
I find that if one sticks to using the Boost libraries in a similar manner to the examples provided in the documentation, the libraries are usable with little difficulty. If one goes outside of this, then problems tend to occur, especially regarding using non 8-bit character types. While boost.regex does work with 16-bit types, it does not actually understand UTF-16. I was unable to get boost.iostreams to work with wide characters, and the source code for boost.iostreams is very unreadable.
It's amazing what some of the boost libraries do (boost.lambda is another interesting one), but I think that there are many practical issues that need to be addressed. Some of the libraries are more like research projects than production libraries, while others are very useful and down to earth (like boost.regex and the smart pointers). In the event that someone really needs compile-time regex compilation, it could probably be better solved with an additional tool than directly with the template language. But then again, boost.xpressive is relatively new, so it will be interesting to see where it goes.