#include <iostream>
#include <regex>
using namespace std;
int main() {
std::string s("regina s x99");
std::regex rgx("\\b(regina|margarita|americaine|fantasia)\\b\\s*(s|l|m|xl|xxl)\\b\\s*x([1-9]*[0-9])");
smatch result;
regex_search(s, result, rgx);
for(size_t i=1; i<result.size(); ++i)
{
cout << "Capture group " << i << ": " << result[i] << endl;
}
if (std::regex_match(s, rgx))
std::cout << "It works !" << std::endl;
else
std::cout << "It didn't work !" << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmVnZXg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXN0ZDo6c3RyaW5nIHMoInJlZ2luYSBzIHg5OSIpOwoJc3RkOjpyZWdleCByZ3goIlxcYihyZWdpbmF8bWFyZ2FyaXRhfGFtZXJpY2FpbmV8ZmFudGFzaWEpXFxiXFxzKihzfGx8bXx4bHx4eGwpXFxiXFxzKngoWzEtOV0qWzAtOV0pIik7IAoJc21hdGNoIHJlc3VsdDsKCXJlZ2V4X3NlYXJjaChzLCByZXN1bHQsIHJneCk7Cglmb3Ioc2l6ZV90IGk9MTsgaTxyZXN1bHQuc2l6ZSgpOyArK2kpCgl7CiAgICAJY291dCA8PCAiQ2FwdHVyZSBncm91cCAiIDw8IGkgPDwgIjogIiA8PCByZXN1bHRbaV0gPDwgZW5kbDsKCX0KCWlmIChzdGQ6OnJlZ2V4X21hdGNoKHMsIHJneCkpCgkJc3RkOjpjb3V0IDw8ICJJdCB3b3JrcyAhIiA8PCBzdGQ6OmVuZGw7CgllbHNlCgkJc3RkOjpjb3V0IDw8ICJJdCBkaWRuJ3Qgd29yayAhIiA8PCBzdGQ6OmVuZGw7CglyZXR1cm4gMDsKfQ==