← Список руководств GUIDE
Разбираем группы захвата, именованные группы и lookaround.

Скобки (...) создают группу захвата. Совпавшую часть можно отдельно извлечь как фрагмент или повторно использовать в строке замены через $1·$2. Если группа нужна, но захват нежелателен, используйте группу без захвата (?:...).

(?<name>...) — это именованная группа захвата. К ней можно обращаться по имени вместо номера, что улучшает читаемость по мере усложнения шаблона. В замене на неё ссылаются через $<name>.

Просмотр вперёд (?=...) сопоставляет позицию, за которой идёт определённый шаблон, а (?!...) — позицию, за которой его нет, при этом эта часть не потребляется. Просмотр назад (?<=...) и (?<!...) точно так же проверяют то, что стоит впереди.

Ключевое в lookaround — это «условие, которое не потребляется». Он мощен, когда нужно совместить несколько условий, как при проверке надёжного пароля, или когда замену нужно делать только в определённом контексте.