id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 12959,Regex class negation,robic@…,John Maddock,"Pertains to boost::regex Tested on version 1.61 Flags: Perl[[BR]] Target string: abc092efg[[BR]] Regex: `[^\W\D]+`[[BR]] Function: regex_search[[BR]] Matches: abc092efg[[BR]] Should match: 092[[BR]] Notes[[BR]] Negative class resolution: 'Not-Not Word' AND 'Not-Not Digit'[[BR]] The intersection of word AND digits is digits.[[BR]] Every other regex engine does this correctly.[[BR]] This includes Perl, PCRE, JS, C++11, Python, etc..[[BR]] In this engine, `[^\W\D]` matches what `[\w\d]` does.[[BR]] `[^\W\D]` appears not to be an intersection as the operator in[[BR]] a negative class is AND.[[BR]] Fwiw - this behavior is seen with all negated shorthand elements of a[[BR]] negative class, i.e. `[^\S\W]` matches all whitespace OR all word char's.[[BR]] ",Bugs,new,To Be Determined,regex,Boost 1.61.0,Showstopper,,,