#include <regex>
#include <string>
#include <iostream>
using namespace std;
int main()
{
string regx = R"(<\s*(\d+)\s*>((.|\n)*?)<\s*\1\s*>)";
string input = "<1>test1<1><2>Tes \n t2<2>sfsaf<3><4>test4<4>";
smatch matches;
while (regex_search(input, matches, regex(regx)))
{
cout<<matches[2]<<endl;
input = matches.suffix().str();
}
return 0;
}
I2luY2x1ZGUgPHJlZ2V4PgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKCXN0cmluZyByZWd4ID0gUiIoPFxzKihcZCspXHMqPigoLnxcbikqPyk8XHMqXDFccyo+KSI7CglzdHJpbmcgaW5wdXQgPSAiPDE+dGVzdDE8MT48Mj5UZXMgXG4gdDI8Mj5zZnNhZjwzPjw0PnRlc3Q0PDQ+IjsKCXNtYXRjaCBtYXRjaGVzOwoJICAgIHdoaWxlIChyZWdleF9zZWFyY2goaW5wdXQsIG1hdGNoZXMsIHJlZ2V4KHJlZ3gpKSkKCSAgICB7CgkgICAgICAgIGNvdXQ8PG1hdGNoZXNbMl08PGVuZGw7CgkgICAgICAgIGlucHV0ID0gbWF0Y2hlcy5zdWZmaXgoKS5zdHIoKTsKCSAgICB9CglyZXR1cm4gMDsKfQ==