https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77492
Bug ID: 77492
Summary: std regex icase doesn't seem to work correctly.
Product: gcc
Version: 5.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: flashmozzg at gmail dot com
Target Milestone: ---
It seems that the case is not ignored in this example code (should count the
number of pairs of equal words ignoring case):
int test(std::string letter) {
std::regex re ("([^a-z]|^)([a-z]+)[^a-z]+\\2([^a-z]|$)",
std::regex_constants::icase);
return std::distance(
std::sregex_iterator(letter.begin(), letter.end(), re),
std::sregex_iterator()
);
}
int main() {
cout << test("Test test");
return 0;
}
It prints 0, while test("test test") outputs 1.