Boost.Regex

Thread Safety

The regex library is thread safe when Boost is: you can verify that Boost is in
thread safe mode by checking to see if BOOST_HAS_THREADS is defined: this macro
is set automatically by the config system when threading support is turned on
in your compiler.

Class basic_regex<> and its typedefs regex
and wregex are thread safe, in that compiled regular expressions can safely be
shared between threads. The matching algorithms regex_match,
regex_search, regex_grep,
regex_format and regex_merge
are all re-entrant and thread safe. Class match_results
is now thread safe, in that the results of a match can be safely copied from
one thread to another (for example one thread may find matches and push
match_results instances onto a queue, while another thread pops them off the
other end), otherwise use a separate instance of match_results
per thread.

The POSIX API functions are all re-entrant and
thread safe, regular expressions compiled with regcomp can also be
shared between threads.

The class RegEx is only thread safe if each thread
gets its own RegEx instance (apartment threading) - this is a consequence of
RegEx handling both compiling and matching regular expressions.