# sewer-replacement Simple inverse-regex style template language, for use in replacements At replacements, provides several patterns: | Pattern | Inserts | | ------- | ------- | | `$$` | Literal `"$"` | | `$n`, where `n` - number | Indexed match, i.e `str.replace("aaa(bbb)", "$1aaa") == "bbbaaa"`. Zero index is reserved for full match. If specified group does not exists - then throws error, see below for error handling | | `$`, where `name` - string | Named match, i.e `str.replace("aaa(?Pbbb)", "$aaa") == "bbbaaa"`. If specified group does not exists - then throws error | | `\\` | Literal `"\"` | | `\ ` | Literal `" "` | | `\xnn`, where `n` - hex digit | Insert literal byte with hex code `0xnn` | | `(expr1\|expr2\|expr3...)`, where expr - replacement expression | Try to execute `expr1`, if error is thrown (see above) - then try next expression, if no expression is matched - throw error | Expression may start with `(?x)`, this makes parser ignore whitespace, and allows writing comments ``` (?x) $ # Insert group 1 == $ # Insert group 2 ```