- string const new_cap("\\1\\3},label={\\2");
- return from_utf8(regex_replace(to_utf8(cap), reg, new_cap));
+ string const new_cap("$1$3},label={$2");
+ // TexString validity: the substitution preserves the number of newlines.
+ // Moreover we assume that $2 does not contain newlines, so that the texrow
+ // information remains accurate.
+ cap.str = from_utf8(regex_replace(to_utf8(cap.str), reg, new_cap));
+ return cap;