New issues should be submitted at https://github.com/boostorg/regex/issues
Currently open issues can be viewed here.
All issues including closed ones can be viewed here.
-
Minor fix for setting building with -DBOOST_REGEX_MAX_CACHE_BLOCKS=0
and
<atomic>
present.
-
Breaking Change: Change \B to be the
opposite of \b as per Perl behaviour.
-
Change w32_regex_traits.hpp so that windows.h is no longer included.
-
Fxed fuzzing related issues #151,
#152,
#153,
#156.
-
Big change to header only library.
-
Deprecate C++03 support.
-
Minor build fixes, see #89.
-
Compiling with Oracle C++ toolset is no longer restricted to static linking.
-
Big effort to de-fuzz the library using libFuzzer and fix identified
issues, see: #12818.
-
Fix buffer over-run error when parsing certain invalid regexes, see
#12222.
-
Fix detection of ICU in library build, see #12152.
-
Fix bug in case sensitivity change, see #11940.
-
Allow types wider than int in
\x{}
expressions (for char32_t etc), see #11988.
-
Change to lockfree implementation of memory cache, see PR#23.
-
Add support for Perl's backtracking control verbs, see #11205.
Note however, that (*MARK) and operations on marks are not currently
supported.
-
Fix incorrect range end when matching [[:unicode:]], see #11524.
-
Change POSIX reg_comp API to not check potentially uninitialized memory,
note that code which was previously free from memory leaks (but none
the less buggy, as it didn't call reg_free) will now leak. See #11472.
-
Make sub_match a valid C++ range type, see #11036.
-
Fixed some typos as in #10682.
-
Merged pull-request
#6 for Coverity warnings.
-
Merged pull-request
#7 for Coverity warnings.
-
Merged pull-request
#8 for Coverity warnings.
-
Merged pull-request
#10 to enable more build variants when linking to ICU.
-
Fix issue with ICU and partial matches, see #10114.
-
Removed delayload support for the ICU libraries: this doesn't work with
the latest ICU releases (linker errors).
-
Moved to library-specific version number post the move to Git. And since
we have one (minor) breaking change this gets bumped up from v4 to v5.
-
Breaking change: corrected behavior
of
basic_regex<>::mark_count()
to match existing documentation, basic_regex<>::subexpression(n)
changed to match, see #9227
-
Fixed issue #8903.
-
Fixed documentation typos from #9283.
-
Fixed bug in collation code that failed if the locale generated collation
strings with embedded nul's, see #9451.
-
Apply patch for unusual thread usage (no statically initialized mutexes),
see #9461.
-
Added better checks for invalid UTF-8 sequences, see #9473.
Fixed issue #8569.
Fixed Issues: #7744,
#7644.
Fixed issues: #589,
#7084,
#7032,
#6346.
Fixed issue with (?!)
not being
a valid expression, and updated docs on what constitutes a valid conditional
expression.
Fixed issues: #698,
#5835,
#5958,
#5736.
Fixed issues: #5223,
#5353,
#5363,
#5462,
#5472,
#5504.
Fixed issues: #4309,
#4215,
#4212,
#4191,
#4132,
#4123,
#4114,
#4036,
#4020,
#3941,
#3902,
#3890
-
Added support for Functors rather than strings as format expressions.
-
Improved error reporting when throwing exceptions to include better more
relevant information.
-
Improved performance and reduced stack usage of recursive expressions.
-
Fixed tickets #2802,
#3425,
#3507,
#3546,
#3631,
#3632,
#3715,
#3718,
#3763,
#3764
-
Added support for many Perl 5.10 syntax elements including named sub-expressions,
branch resets and recursive regular expressions.
-
Breaking change: empty expressions,
and empty alternatives are now allowed when using the Perl regular expression
syntax. This change has been added for Perl compatibility, when the new
syntax_option_type
no_empty_expressions is set then the old behaviour
is preserved and empty expressions are prohibited. This is issue #1081.
-
Added support for Perl style ${n} expressions in format strings (issue
#2556).
-
Added support for accessing the location of sub-expressions within the
regular expression string (issue #2269).
-
Fixed compiler compatibility issues #2244,
#2514,
and #2458.
-
Fix for non-greedy repeats and partial matches not working correctly
in some cases.
-
Fix for non-greedy repeats on VC++ not working in some cases (bug report
1515830).
-
Changed match_results::position() to return a valid result when *this
represents a partial match.
-
Fixed the grep and egrep options so that the newline character gets treated
the same as |.
-
Fixed broken makefiles.
-
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 circumstances
repeat more times than their maximum value.
-
Fixed the value returned by basic_regex<>::empty() from a default
constructed object.
-
Changed the definition 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-expression|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 occurred.
-
Fixed bug in partial matches of bounded repeats of '.'.
-
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.