Blog

Regex Special Characters You Must Escape

Certain characters have special meaning in regex — use them literally and your pattern breaks silently. Here's the full list and how to escape them correctly.

Some characters mean something specific to the regex engine. If you want to match them literally — not as pattern syntax — you must escape them with a backslash.

The 12 metacharacters

These characters have special meaning in most regex flavors:

. * + ? ^ $ { } [ ] ( ) | \
CharacterRole in regex
.Match any character (except newline by default)
*Zero or more of the preceding
+One or more of the preceding
?Zero or one; also makes quantifiers lazy
^Start of string (or line with m flag)
$End of string (or line with m flag)
{ }Quantifier range: {2,5} means 2 to 5
[ ]Character class: [a-z]
( )Capture group
|Alternation (OR)
\Escape the next character

How to escape them

Prefix the character with \ to match it literally:

js
// Match a period, not "any character"
/3\.14/.test("3.14")  // true
/3\.14/.test("3X14")  // false

// Match a literal dollar sign
/\$100/.test("$100")  // true

// Match a literal backslash
/C:\\Users/.test("C:\\Users")  // true

Common mistake: URLs and file paths

URLs and paths are full of metacharacters. A naive pattern silently matches more than you expect:

js
// ❌ The dot matches any character
/example.com/.test("exampleXcom")  // true — probably not what you wanted

// ✅ Escape the dot
/example\.com/.test("exampleXcom")  // false

In JavaScript string literals, escape twice

When building a regex from a string with new RegExp(), each backslash needs to be doubled — once for the string, once for the regex engine:

js
const pattern = new RegExp("\\$\\d+");  // matches "$42"
// Equivalent regex literal:
const re = /\$\d+/;

With a regex literal (/.../), one backslash is enough. With a string, you need two.

Test escaping live

Paste your pattern into the regex tester and see exactly which parts of your input match as you type. If a . is matching characters it shouldn't, you're missing the backslash.

For flag modifiers like g, i, and m, see regex flags explained. For a broader reference of useful patterns, see the regex cheat sheet.

Got a file to check?
Paste it in. Errors come back in plain English.
Open Regex Tester →