Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards


Interfacing With Non-Standard String Types

Working With Unicode and ICU String Types
Introduction to using Regex with ICU
Unicode regular expression types
Unicode Regular Expression Algorithms
Unicode Aware Regex Iterators
Using Boost Regex With MFC Strings
Introduction to Boost.Regex and MFC Strings
Regex Types Used With MFC Strings
Regular Expression Creation From an MFC String
Overloaded Algorithms For MFC String Types
Iterating Over the Matches Within An MFC String

The Boost.Regex algorithms and iterators are all iterator-based, with convenience overloads of the algorithms provided that convert standard library string types to iterator pairs internally. If you want to search a non-standard string type then the trick is to convert that string into an iterator pair: so far I haven't come across any string types that can't be handled this way, even if they're not officially iterator based. Certainly any string type that provides access to it's internal buffer, along with it's length, can be converted into a pair of pointers (which can be used as iterators).

Some non-standard string types are sufficiently common that wappers have been provided for them already: currently this includes the ICU and MFC string class types.