Fixed configuration setup to allow building with VC7.1 - STLport-4.6.2
when using /Zc:wchar_t.
Moved declarations class-inline in static_mutex.hpp so that SGI Irix compiler
can cope.
Added needed standard library #includes to fileiter.hpp, regex_workaround.hpp
and cpp_regex_traits.hpp.
Fixed a bug where non-greedy repeats could in certain strange curcumstances
repeat more times than their maximum value.
Fixed the value returned by basic_regex<>::empty() from a default
constructed object.
Changed the deffinition of regex_error to make it backwards compatible
with Boost-1.32.0.
Disabled external templates for Intel C++ 8.0 and earlier - otherwise unresolved
references can occur.
Rewritten extern template code for gcc so that only specific member functions
are exported: otherwise strange unresolved references can occur when linking
and mixing debug and non-debug code.
Initialise all the data members of the unicode_iterators: this keeps gcc
from issuing needless warnings.
Ported the ICU integration code to VC6 and VC7.
Ensured code is STLport debug mode clean.
Fixed lookbehind assertions so that fixed length repeats are permitted,
and so that regex iteration allows lookbehind to look back before the current
search range (into the last match).
Fixed strange bug with non-greedy repeats inside forward lookahead assertions.
Enabled negated character classes inside character sets.
Fixed regression so that [a-z-] is a valid expression again.
Fixed bug that allowed some invalid expressions to be accepted.
Completely rewritten expression parsing code, and traits class support;
now conforms to the standardization proposal.
Breaking Change: The syntax options that can be passed to basic_regex constructors
have been rationalized. The default option (perl) now has a value of zero,
and it is now clearly documented which options apply to which regular expression
syntax styles (perl, POSIX-extended, POSIX-basic etc). Some of the more
esoteric options have now been removed, so there is the possibility that
existing code may fail to compile: however equivalent functionality should
still be available.
Breaking Change: POSIX-extended and POSIX-basic regular expressions now
enforce the letter of the POSIX standard much more closely than before.
Added support for (?imsx-imsx) constructs.
Added support for lookbehind expressions (?<=positive-lookbehind) and
(?<!negative-lookbehind).
Added support for conditional expressions (?(assertion)true-expresion|false-expression).
Added MFC/ATL string wrappers.
Added Unicode support; based on ICU.
Changed newline support to recognise \f as a line separator (all character
types), and \x85 as a line separator for wide characters / Unicode only.
Added a new format flag format_literal that treats the replace string as
a literal, rather than a Perl or Sed style format string.
Errors are now reported by throwing exceptions of type regex_error. The
types used previously - bad_expression and bad_pattern - are now just typedefs
for regex_error. Type regex_error has a couple of new members: code() to
report an error code rather than a string, and position() to report where
in the expression the error occured.
Completely rewritten pattern matching code - it is now up to 10 times faster
than before.
Reorganized documentation.
Deprecated all interfaces that are not part of the regular expression standardization
proposal.
Added regex_iterator and regex_token_iterator .
Added support for Perl style independent sub-expressions.
Added non-member operators to the sub_match class, so that you can compare
sub_match's with strings, or add them to a string to produce a new string.
Added experimental support for extended capture information.
Changed the match flags so that they are a distinct type (not an integer),
if you try to pass the match flags as an integer rather than match_flag_type
to the regex algorithms then you will now get a compiler error.