#include <string>
#include <iostream>
#include <regex>
using namespace std;
int main() {
std::regex r("(a)|(b)|(c)");
std::string s = "abcab";
for(std::sregex_iterator i = std::sregex_iterator(s.begin(), s.end(), r);
i != std::sregex_iterator();
++i)
{
std::smatch m = *i;
std::cout << " Capture: " << m.str() << " at Position " << m.position() << '\n';
}
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmVnZXg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXN0ZDo6cmVnZXggcigiKGEpfChiKXwoYykiKTsKCXN0ZDo6c3RyaW5nIHMgPSAiYWJjYWIiOwoJZm9yKHN0ZDo6c3JlZ2V4X2l0ZXJhdG9yIGkgPSBzdGQ6OnNyZWdleF9pdGVyYXRvcihzLmJlZ2luKCksIHMuZW5kKCksIHIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgIT0gc3RkOjpzcmVnZXhfaXRlcmF0b3IoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2kpCiAgICB7CiAgICAgICAgc3RkOjpzbWF0Y2ggbSA9ICppOwogICAgICAgIHN0ZDo6Y291dCA8PCAiICAgIENhcHR1cmU6ICIgPDwgbS5zdHIoKSA8PCAiIGF0IFBvc2l0aW9uICIgPDwgbS5wb3NpdGlvbigpIDw8ICdcbic7CiAgICB9CglyZXR1cm4gMDsKfQo=