- // The '$' must be prefixed with the escape character '\' for
- // boost to treat it as a literal.
- // Thus, to prefix a matched expression with '\', we use:
+#if defined(LYX_USE_CXX11) && defined(LYX_USE_STD_REGEX)
+ // To prefix a matched expression with a single literal backslash, we
+ // need to escape it for the C++ compiler and use:
+ return lyx::regex_replace(expr, reg, "\\$&");
+#else
+ // A backslash in the format string starts an escape sequence in boost.
+ // Thus, to prefix a matched expression with a single literal backslash,
+ // we need to give two backslashes to the regex engine, and escape both
+ // for the C++ compiler and use: