Replacement String Features Comparison

Characters

Feature Syntax Description Example specRegex .NET std::regex PCRE2 RE2
Backslash A backslash that does not form a token Invalid escapes insert the escaped character literally. \! inserts ! ✔ (Opt) ✔ (Opt)
Backslash A backslash that does not form a token A backslash that is not part of a replacement string token is a literal \! inserts \!
Backslash Trailing backslash Trailing backslash is literal backslash \ at the end inserts \
Backslash \\ A backslash escapes itself \\ inserts \ ✔ (Opt) ✔ (Opt)
Dollar A dollar that does not form a token A dollar that does not form a token is a literal dollar $! inserts $!
Dollar Trailing dollar A trailing dollar is a literal dollar $ at the end inserts $
Dollar $$ A dollar escapes itself $$ inserts $
Dollar \$ A backslash escapes a dollar \$ inserts $
Hexadecimal escape \xFF where FF are 2 hexadecimal digits Insert the single-byte character FF
Character escape \n, \r and \t Insert an LF character, CR character and a tab character respectively \r\n inserts a CRLF line break
Character escape \a Insert the “alert” or “bell” control character (ASCII 0x07)
Character escape \b Insert the “backspace” control character (ASCII 0x08)
Character escape \e Insert the “escape” control character (ASCII 0x1A)
Character escape \f Insert the “form feed” control character (ASCII 0x0C)
Character escape \v Insert the “vertical tab” control character (ASCII 0x0B)
Control character escape \cA through ASCII character ^A through ^Z, equivalent to \x01 through\x1A \cM\cJ inserts a CRLF linebreak
Control character escape \ca through ASCII character ^A through ^Z, equivalent to \x01 through\x1A \cm\cj inserts a CRLF linebreak
NULL escape \0 Insert the null character
Octal escape \o{7777} for any octal number Insert the character with the specified number \o{20254} inserts
Octal escape \1 through \7 Insert the character at the specified position in the ASCII table \7 inserts the “bell” character
Octal escape \10 through \77 Insert the character at the specified position in the ASCII table \77 inserts ?
Octal escape \100 through \177 Insert the character at the specified position in the ASCII table \100 inserts @
Octal escape \200 through \377 Insert the character at the specified position in the active code page \377 inserts ÿ
Octal escape \400 through \777 Insert the character at the specified position in the active code page \777 inserts ǿ
Octal escape \01 through \07 Insert the character at the specified position in the ASCII table \07 inserts the “bell” character
Octal escape \010 through \077 Insert the character at the specified position in the ASCII table \077 inserts ?
Octal escape \0100 through \0177 Insert the character at the specified position in the ASCII table \0100 inserts @
Octal escape \0200 through \0377 Insert the character at the specified position in the active code page \0377 inserts ÿ

Matched Text and Backreferences

Feature Syntax Description Example specRegex .NET std::regex PCRE2 RE2
Ampersand \& Insert a literal ampersand \& inserts & ✔ (Opt) ✔ (Opt)
Whole match \& Insert the whole regex match \& inserts the entire match
Whole match $& Insert the whole regex match $& inserts the entire match
Whole match & Insert the whole regex match & inserts the entire match ✔ (Opt)
Whole match \0 Insert the whole regex match \0 inserts the entire match ✔ (Opt)
Whole match $0 Insert the whole regex match $0 inserts the entire match
Whole match \g<0> Insert the whole regex match
Whole match $MATCH and ${^MATCH} Insert the whole regex match
Backreference \1 to \9 Insert the text matched by one of the first 9 capturing groups. \3 inserts capture group 3 ✔ (Opt)
Backreference \10 to \99 Insert the text matched by one of the latter 89 capturing groups.
Backreference and literal \10 to \99 For <10 groups in regex, treat second digit as a literal \33 may insert <group 3>3
Backreference $1 to $9 Insert the text matched by one of the first 9 capturing groups. $3 inserts capture group 3
Backreference $10 to $99 Insert the text matched by one of the latter 89 capturing groups.
Backreference and literal $10 to $99 For <10 groups in regex, treat second digit as a literal $33 may insert <group 3>3 ✔ (Opt)
Backreference ${1} to ${99} Insert the text matched by a numbered capturing group ${3} inserts group 3
Backreference \g<1> to \g<99> Insert the text matched by a numbered capturing group \g<3> inserts group 3
Named Backreference ${name} Insert the text matched by named group name ${foo} inserts group foo
Named Backreference $+{name} Insert the text matched by named group name ${foo} inserts group foo
Named Backreference $name Insert the text matched by named group name $foo inserts group foo
Named Backreference \g<name> Insert the text matched by named group name \g<foo> inserts group foo
Invalid backreference Any backref with nonexistent name/number An out-of-bounds backreference is the empty string.
Invalid backreference Any backref with nonexistent name/number An out-of-bounds backreference is a literal
Nonparticipating backreference Any backreference with to nonparticipant A non-participating backreference is the empty string
Last backreference \+ Inserts the highest-numbered participating group
Last backreference \+ Inserts the highest-numbered group, regardless of participation
Last backreference $+ Inserts the highest-numbered participating group
Last backreference $+ Inserts the highest-numbered group, regardless of participation
Last backreference $^N Inserts the highest-numbered participating group
Last backreference $LAST_SUBMATCH_RESULT, ${^LAST_SUBMATCH_RESULT} Inserts the highest-numbered participating group
Last backreference $LAST_PAREN_MATCH, ${^LAST_PAREN_MATCH} Inserts the highest-numbered group, regardless of participation

Context and Case Conversion

Feature Syntax Description Example specRegex .NET std::regex PCRE2 RE2
Match Context \` Insert the part of the subject string to the left of the regex match.
Match Context $` Insert the part of the subject string to the left of the regex match.
Match Context $PREMATCH, ${^PREMATCH} Insert the part of the subject string to the left of the regex match.
Match Context \' Insert the part of the subject string to the right of the regex match.
Match Context $' Insert the part of the subject string to the right of the regex match.
Match Context $POSTMATCH, ${^POSTMATCH} Insert the part of the subject string to the right of the regex match.
Match Context \_ Insert the entire subject string.
Match Context $_ Insert the entire subject string.
Case Conversion \U0 to \U99 Insert a numbered group (or whole match), converted to uppercase.
Case Conversion \L0 to \L99 Insert a numbered group (or whole match), converted to lowercase.
Case Conversion \F0 to \F99 Convert the first character to uppercase, and the rest to lowercase.
Case Conversion \I0 to \I99 Insert a numbered group (or whole match), converted to title case.
Case Conversion \U Everything until the next \E or \L is uppercased
Case Conversion \L Everything until the next \E or \U is uppercased
Case Conversion \u The next character is uppercased
Case Conversion \l The next character is lowercased