Шаблон, регулярное выражение

Подстрока, которая ищется в некоторой целевой строке или в массиве строк.

Шаблон может содержать следующие шаблонные знаки.

*
Произвольная цепочка литер, в том числе пустая.
?
Произвольная одиночная литера, но не пустая цепочка.
$
Конец целевой строки, например: *лет$
сопоставляется с 35 лет, но не сопоставляется с короткое лето;.
^
Литера не совпадет (или отрицание), например: (^ф*)
сопоставляется с (1/4) или (бр), но не сопоставляется с (ф).
|
Разделитель альтернатив, например: до*кг|свыше*кг
сопоставляется как с цепочкой до 75кг, так и свыше 75 кг.
{ и }
Группировка, позволяющая альтернативы в окружении других литер, например: вес {до|свыше} 75 кг
сопоставляется как с цепочкой вес до 75кг, так и вес свыше 75 кг.

Вдобавок по особому трактуется тильда, за которой следует одна буква (управляющая последовательность).

~b
Обычный или неразделяемый пробел (единичный).
~i
Целое число, состоящее из произвольного количества десятичных цифр.

Все прочие литеры: буквы, цифры и знаки препинания — трактуются, как обычно.

Высота букв (заглавные или строчные) в одних местах различается, в других нет (например, Круг успешно сопоставляется как с круг, так и с КРУГ).

Ввиду неоднозначности запрещены шаблоны вида *^c (но допустимы ?^c или a*^c).