Быстрый справочник
| Anchor | Escape | Class | Quant |
^ начало | \d цифра | [abc] один из | * 0+ |
$ конец | \w слово | [^abc] не из | + 1+ |
\b граница | \s пробел | [a-z] диапазон | ? 0 или 1 |
| . любой | | {n,m} n до m раз |
Catastrophic Backtracking
Паттерн (a+)+$ на строке «aaaaaaaaa!» вызывает экспоненциальный перебор — браузер зависнет. Причина: вложенные квантификаторы с одинаковыми символами создают экспоненциальное количество способов разбора. Проверяй паттерны на ReDoS: atomic groups, possessive quantifiers, или переписывай без вложенности.
Флаги
g — все совпадения (без — только первое). i — регистронезависимо. m — ^ и $ работают для каждой строки. s — . совпадает с \n.