GRETA:
The GRETA Regular Expression Template Archive
GRETA gives you all the power of Perl 5 regular expressions in your C++ applications. These easy-to-use classes let you perform regular expression pattern matches on strings in C++.
Features include:
Fast backtracking regular expression engine.
Separately compiled patterns.
Matches against C-style NULL-terminated strings, C++-sytle std::string's, or iterator ranges.
Template on iterator type and syntax module.
Supports Unicode.
Syntax is encapsulated in easily customized/replaced modules. (Perl and POSIX syntax modules included.)
Match balanced, nested tags with a recursive pattern. Great for HTML/XML/SOAP processing.
Many times faster than the .NET/ATL7 regex classes.
Consistently outperforms than boost regex++ on short strings; performs competitively on long strongs (see this page for a detailed comparison).
NOTE: GRETA compiles on VC7, VC7.1 and gcc 3.2. Below, you can find a separate version that compiles on VC6.
New! GRETA is now available free for commercial use as part of Visual C++ PowerTools. You can find it on GotDotNet (just look for PowerTools).
GRETA was developed by Eric Niebler, who is unfortunately no longer at Microsoft. It is now being maintained by Ashish Aggarwal and Chris Quirk.