Если вы используете «динамический» диалект, вы можете использовать тот же синтаксис, что и для PCRE. Например (непроверенных):
using namespace boost::xpressive;
sregex rx = sregex::compile("(?ms)^\\[(.+?)\\](.*?)(?=\\n\\[|.\\z");
Если вы используете «статический» диалект Xpressive, шаблон картина _
(в пространстве имен boost::xpressive
Это соответствует любому символу Если вы хотите, чтобы соответствовать любому символу, кроме а.. символ новой строки, вы можете использовать ~_n
Наконец, если вы хотите, чтобы соответствовать любому символу, за исключением логического конца строки (\r
, \n
, \r\n
и варианты Unicode), вы можете использовать ~_ln
.. (Edit: фиксированная опечатка)