[Boost-bugs] [Boost C++ Libraries] #13256: regex '([|&])\1?' with backreference fails to compile if regex::nosub flag used

Subject: [Boost-bugs] [Boost C++ Libraries] #13256: regex '([|&])\1?' with backreference fails to compile if regex::nosub flag used
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2017-10-11 09:06:39


#13256: regex '([|&])\1?' with backreference fails to compile if regex::nosub flag
used
----------------------------------+--------------------------
 Reporter: Gene Thomas <gene@…> | Owner: John Maddock
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: regex
  Version: Boost 1.58.0 | Severity: Problem
 Keywords: regex nosub |
----------------------------------+--------------------------
 when compiling a regex with regex::nosubs flag set, a regex with a back
 reference fails with:

 Invalid back reference: specified capturing group does not exist. The
 error occurred while parsing the regular expression:
 '([|&])>>>HERE>>>\1?'.

 Test program:

 #include <boost/regex.hpp>
 #include <iostream>
 #include <exception>

 using namespace std;

 int main(int argc, char **argv) {

     try {
         boost::regex::flag_type flags = boost::regex::ECMAScript;
         flags |= boost::regex::nosubs;
         boost::regex theRegex("([|&])\\1?", flags);
         cout << "ok\n";
         return 0;
     } catch (exception &e) {
         cerr << "exception: " << e.what() << "\n";
         return 1;
     }
 }

 g++ -std=c++11 test-boost-regex-bug.cpp -o test-boost-regex-bug -l
 boost_regex

-- 
Ticket URL: <https://svn.boost.org/trac10/boost/ticket/13256>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-10-11 09:13:30 UTC