In boost/regex/v4/regex_match.hpp, a number of the overloads (the ones that don't take a result parameter) are now bitwise-oring in regex_constants::match_any.
As a result, a sequence like
boost::regexp exp("a(bc)?") char *value = "abcbc"; bool result = boost::regex_match(value, value + 5, exp);
will now set result to true where it was previously false in 1.32. I fixed our code by passing in a dummy result object as an extra parameter.
Was this change intentional? I couldn't find any documentation that mentions it.
It's intentional in the sense that or'ing with match_any *should never
effect whether a match is found or not*, only which or several possible
matches gets selected.
I can't reproduce your problem here, here's the test code I'm using:
#include