https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61859

            Bug ID: 61859
           Summary: extra character in match of std::regex_match
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: stick at gk2 dot sk

Testcase:

// g++ ./regex_test.cpp -std=c++11 -o ./regex_test && ./regex_test

#include <iostream>
#include <string>
#include <regex>

int main()
{
    std::string s = "/call/123";
    std::regex r = std::regex("/call/(.+)");
    std::smatch mr;
    bool m = std::regex_match(s, mr, r);

    std::cout << m << std::endl;     // prints 1, OK
    std::cout << mr[0] << std::endl; // prints "/call/123", OK
    std::cout << mr[1] << std::endl; // prints "/123", expected "123"

    return 0;
}

Reply via email to