...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::xpressive::regex_constants::syntax_option_type
// In header: <boost/xpressive/regex_constants.hpp> enum syntax_option_type { ECMAScript = = 0, icase = = 1 << 1, nosubs = = 1 << 2, optimize = = 1 << 3, collate = = 1 << 4, single_line = = 1 << 10, not_dot_null = = 1 << 11, not_dot_newline = = 1 << 12, ignore_white_space = = 1 << 13 };
Flags used to customize the regex syntax
ECMAScript
Specifies that the grammar recognized by the regular expression engine uses its normal semantics: that is the same as that given in the ECMA-262, ECMAScript Language Specification, Chapter 15 part 10, RegExp (Regular Expression) Objects (FWD.1).
icase
Specifies that matching of regular expressions against a character container sequence shall be performed without regard to case.
nosubs
Specifies that when a regular expression is matched against a character container sequence, then no sub-expression matches are to be stored in the supplied match_results structure.
optimize
Specifies that the regular expression engine should pay more attention to the speed with which regular expressions are matched, and less to the speed with which regular expression objects are constructed. Otherwise it has no detectable effect on the program output.
collate
Specifies that character ranges of the form "[a-b]" should be locale sensitive.
single_line
Specifies that the ^ and $ metacharacters DO NOT match at internal line breaks. Note that this is the opposite of the perl default. It is the inverse of perl's /m (multi-line) modifier.
not_dot_null
Specifies that the . metacharacter does not match the null character \0.
not_dot_newline
Specifies that the . metacharacter does not match the newline character \n.
ignore_white_space
Specifies that non-escaped white-space is not significant.