| 1 | <!-- kb_card |
| 2 | id: index-knowledge-regex-cluster-v1 |
| 3 | title: Кластер знаний — регулярные выражения (MRE3 / Friedl) |
| 4 | cluster: regex-friedl-mre3 |
| 5 | kb_layer: L3 |
| 6 | book_alignment: Тематическое покрытие по Jeffrey Friedl, Mastering Regular Expressions, 3rd ed. (O'Reilly). Оригинальные формулировки; не замена книги. |
| 7 | last_reviewed_utc: 2026-03-21 |
| 8 | --> |
| 9 | |
| 10 | # Кластер: регулярные выражения |
| 11 | |
| 12 | ## Назначение |
| 13 | |
| 14 | Точка входа для маршрутизации: от задачи к нужной карточке без загрузки всего кластера. |
| 15 | |
| 16 | ## Экземпляр книги (локальный PDF) |
| 17 | |
| 18 | - `c:\Users\dkara\Downloads\OReilly-Регулярные-выражения-3-е-изд.-Дж.Фридл.pdf` — по закладкам сверена **карта глав**: `kb-regex-mre3-ru-chapter-map-v1.md`. |
| 19 | |
| 20 | ## Порядок чтения (фундаментальный проход) |
| 21 | |
| 22 | 1. `kb-regex-mre3-ru-chapter-map-v1.md` — соответствие глав 1–10 книги и карточек KB. |
| 23 | 2. `kb-regex-quickref-v1.md` — L0, шпаргалка перед кодом. |
| 24 | 3. `kb-regex-syntax-features-v1.md` — L1, весь синтаксис «поверхности». |
| 25 | 4. `kb-regex-engines-efficiency-v1.md` — L2, как движок перебирает варианты и почему «тормозит». |
| 26 | 5. `kb-regex-flavors-practice-v1.md` — L2, различия диалектов, .NET/JS/PCRE, практика. |
| 27 | 6. `kb-regex-unicode-boundaries-v1.md` — L1, `\p{...}`, границы, UTF-16/графемы. |
| 28 | |
| 29 | **Операционный контракт** (тесты, безопасность, дисциплина): `regex-playbook.md`. |
| 30 | |
| 31 | ## Быстрый выбор по типу задачи |
| 32 | |
| 33 | | Задача | Файл | |
| 34 | |--------|------| |
| 35 | | Найти главу книги и связанные карточки | `kb-regex-mre3-ru-chapter-map-v1.md` | |
| 36 | | Экранирование, классы, квантификаторы | `kb-regex-syntax-features-v1.md` | |
| 37 | | «Жадность», ленивые квантификаторы | тот же файл, секция quantifiers | |
| 38 | | Скобки, обратные ссылки, именованные группы | тот же файл, секция grouping | |
| 39 | | Границы слова, якоря, lookahead | тот же файл, секция anchors-assertions | |
| 40 | | Кириллица, emoji, `\p{L}`, суррогаты | `kb-regex-unicode-boundaries-v1.md` | |
| 41 | | Почему зависло / очень долго | `kb-regex-engines-efficiency-v1.md` | |
| 42 | | Разница между языками и опциями Regex | `kb-regex-flavors-practice-v1.md` | |
| 43 | |
| 44 | ## Внешний эталон |
| 45 | |
| 46 | Для глубины и доказательного разбора механики движков — PDF/издание O'Reilly; этот кластер — сжатая рабочая память для агента и разработчика (не замена полного текста). |
| 47 | |
| 48 | <!-- section:router-main --> |
| 49 | ## Ключевые идеи кластера |
| 50 | |
| 51 | - **Паттерн** — это инструкция для *движка*: буквальные символы, метасимволы, квантификаторы и утверждения (zero-width). |
| 52 | - **Несовпадение диалектов** — одна и та же строка может вести себя иначе в JavaScript, PCRE, Java, .NET. |
| 53 | - **Стоимость** — NFA с обратным поиском может экспоненциально перебирать варианты; лечится структурой паттерна и инструментами диалекта (атомарность, владение, таймаут). |
| 54 | <!-- /section:router-main --> |
| 55 | |
| 56 | |