Дійсно, мова POSIX BRE не може виражати всі регулярні вирази, оскільки їй не вистачає чергування. Він навіть не може розпізнати всі кінцеві мови, не кажучи вже про всі звичайні мови.
Наприклад, не розпізнається як BRE. Щоб підтвердити це, подумайте, якою може бути синтаксична форма вершини:{ a b , b a }
- Це не може бути однією з однозначних форм, оскільки мова має слова довжиною .> 1
- Це не може бути оскільки це буде відповідати порожній рядку.R∗
- Це не може бути за винятком m = n = 1 (у цьому випадку ми повертаємося до початкової проблеми), оскільки це відповідатиме рядкам різної довжини або порожньому рядку.R{ m , n }m = n = 1
- Отже, це має бути конкатенація: . Тепер розглянемо , як б зізнається:
R1R2a b
- Якщо розпізнає в Ь , то R 2 не повинні визнавати що - або що - небудь інше , ніж порожній рядок. Отже, R 1 повинен розпізнати { a b , b a } і ми повернемося до початкової проблеми.R1a bR2R1{ a b , b a }
- Якщо розпізнає a, але не a b, то R 2 повинен розпізнавати b . Але тоді R 1 R 2 розпізнає всі слова форми u b, де R 1 розпізнає u , тому R 1 не повинен розпізнавати нічого, крім a . Немає способу розпізнати b a .R1аa bR2бR1R2ubR1uR1aba
- Якщо не визнає ні a b, ні a, тоді єдиний спосіб R визнати a b - це якщо R 1 розпізнає порожню рядок, і в цьому випадку ми повертаємося до початкової проблеми, як описано вище, але для R 2 цього разу.R1abaRabR1R2
Коли "ми повертаємося до початкової проблеми", це означає, що єдине рішення для пошуку BRE, що розпізнає мову, - це знайти менший BRE, який має ту саму властивість. Це нескінченний спуск , тому немає БРЕ, що має бажану властивість.
Я не думаю, що існує "приємна" характеристика мов, розпізнаваних BRE, наприклад, мов, розпізнаваних "приємним" класом автомати.
Зауважте, що BRE-розпізнавані мови насправді не є підкласом звичайних мов, оскільки зворотні посилання додають виразної сили. Наприклад, розпізнається BRE, але, мабуть, не є регулярним. BRE без зворотних посилань - це лише синтаксичний цукор над регулярними виразами, тому мови, які вони можуть розпізнати, є підкласом звичайних мов.{ww∣w∈{a,b}∗}\(.*\)\1