#include <regex>
#include <iostream>
using namespace std;
int main() {
try {
regex R(R"(^([^;]+);(?:\s*([^=]+)=((\"?)([^\"]*)\4);?)*$)");
string s("attached; filename=\"Hello, world!.docx\"");
smatch m;
if (regex_search(s, m, R)) {
std::cout << m[0] << std::endl;
}
}
catch (const regex_error& e) {
cout << "regex_error caught: " << e.what() << '\n';
if (e.code() == regex_constants::error_brack) {
cout << "The code was error_brack\n";
}
}
return 0;
}
I2luY2x1ZGUgPHJlZ2V4PgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICB0cnkgewogICAgICAgIHJlZ2V4IFIoUiIoXihbXjtdKyk7KD86XHMqKFtePV0rKT0oKFwiPykoW15cIl0qKVw0KTs/KSokKSIpOwogICAgICAgIHN0cmluZyBzKCJhdHRhY2hlZDsgZmlsZW5hbWU9XCJIZWxsbywgd29ybGQhLmRvY3hcIiIpOwogICAgICAgIHNtYXRjaCBtOwoJCWlmIChyZWdleF9zZWFyY2gocywgbSwgUikpIHsKCQkJc3RkOjpjb3V0IDw8IG1bMF0gPDwgc3RkOjplbmRsOwoJCX0KICAgIH0KICAgIGNhdGNoIChjb25zdCByZWdleF9lcnJvciYgZSkgewogICAgICAgIGNvdXQgPDwgInJlZ2V4X2Vycm9yIGNhdWdodDogIiA8PCBlLndoYXQoKSA8PCAnXG4nOwogICAgICAgIGlmIChlLmNvZGUoKSA9PSByZWdleF9jb25zdGFudHM6OmVycm9yX2JyYWNrKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIlRoZSBjb2RlIHdhcyBlcnJvcl9icmFja1xuIjsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQ==