#include <string>
#include <iostream>
#include <regex>
using namespace std;
int main() {
const std::string text = "This is a test string [more or less] and here is [another].";
const std::regex ws_re(R"(\[([^\]\[]*)\])");
std::copy( std::sregex_token_iterator(text.begin(), text.end(), ws_re, 1),
std::sregex_token_iterator(),
std::ostream_iterator<std::string>(std::cout, "\n"));
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmVnZXg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWNvbnN0IHN0ZDo6c3RyaW5nIHRleHQgPSAiVGhpcyBpcyBhIHRlc3Qgc3RyaW5nIFttb3JlIG9yIGxlc3NdIGFuZCBoZXJlIGlzIFthbm90aGVyXS4iOwoJY29uc3Qgc3RkOjpyZWdleCB3c19yZShSIihcWyhbXlxdXFtdKilcXSkiKTsKCXN0ZDo6Y29weSggc3RkOjpzcmVnZXhfdG9rZW5faXRlcmF0b3IodGV4dC5iZWdpbigpLCB0ZXh0LmVuZCgpLCB3c19yZSwgMSksCiAgICAgICAgICAgc3RkOjpzcmVnZXhfdG9rZW5faXRlcmF0b3IoKSwKICAgICAgICAgICBzdGQ6Om9zdHJlYW1faXRlcmF0b3I8c3RkOjpzdHJpbmc+KHN0ZDo6Y291dCwgIlxuIikpOwogICAgCglyZXR1cm4gMDsKfQo=