.
Qualquer caractere (exceto quebra de linha; com a flag /s, também quebra de linha)
\d
Qualquer dígito (0-9)
\D
Qualquer não-dígito
\w
Caractere de palavra (a-z, A-Z, 0-9, _)
\W
Caractere que não é de palavra
\s
Espaço em branco (espaço, tab, quebra de linha)
\S
Não espaço em branco
\b
Limite de palavra
^ $
Início / fim da string (ou da linha, com a flag /m)
*
Zero ou mais do elemento anterior
+
Um ou mais do elemento anterior
?
Zero ou um do elemento anterior (opcional)
{n,m}
Entre n e m do elemento anterior
(...)
capture group — salvo em $1, $2, …
(?:...)
Grupo sem captura — útil para alternância sem capturar
(?<n>...)
capture group nomeado — referenciado como $<n>
[abc]
Classe de caracteres — qualquer um entre a, b ou c
[^abc]
Classe de caracteres negada — qualquer caractere exceto a, b, c
a|b
Alternância — corresponde a a ou b
(?=...)
lookahead positivo — seguido por
(?!...)
lookahead negativo — não seguido por
(?<=...)
lookbehind positivo — precedido por
(?<!...)
lookbehind negativo — não precedido por
$1 $<n>
backreference na string de substituição — numerada ou nomeada