Сила регулярных выражений состоит в том, что в шаблон можно включать подшаблоны для альтернативного сопоставления и поиска повторений. Альтернативы и повторения кодируют в шаблоне метасимволами, которые парсер интерпретирует не как самих себя, а особым образом.
В коде метасимволы записывают двумя способами: одни парсер распознаёт за пределами квадратных скобок, другие — внутри квадратных скобок. Вне квадратных скобок распознаются следующие метасимволы:
| Метасимвол | Описание |
|---|---|
| \ | общий экранирующий символ с несколькими назначениями |
| ^ | декларирует начало данных (или строки в многострочном режиме) |
| $ | декларирует конец данных или до завершения строки (или окончание строки в многострочном режиме) |
| . | соответствует любому символу, кроме перевода строки (по умолчанию) |
| [ | начало описания символьного класса |
| ] | конец описания символьного класса |
| | | начало ветки условного выбора |
| ( | начало подшаблона |
| ) | конец подшаблона |
| ? |
расширяет смысл метасимвола (,
выступает в роли квантификатора, который означает 0 или 1 вхождение,
а также преобразовывает жадные квантификаторы в ленивые
(смотрите раздел «Повторение»)
|
| * | квантификатор, который означает 0 или более вхождений |
| + | квантификатор, который означает 1 или более вхождений |
| { | начало количественного квантификатора |
| } | конец количественного квантификатора |
| Метасимвол | Описание |
|---|---|
| \ | общий экранирующий символ |
| ^ | означает отрицание класса, допустим только в начале класса |
| - | означает символьный интервал |