De hecho, el lenguaje POSIX BRE no puede expresar todas las expresiones regulares porque carece de alternancia. Ni siquiera puede reconocer todos los idiomas finitos, y mucho menos todos los idiomas normales.
Por ejemplo, no es reconocible como BRE. Para probar esto, considere cuál podría ser la forma sintáctica de nivel superior:{ a b , b a }
- No puede ser una de las formas de un solo carácter ya que el lenguaje tiene palabras de longitud .> 1
- No puede ser porque eso coincidiría con la cadena vacía.R∗
- No puede ser excepto con (en cuyo caso volvemos al problema original) porque eso coincidiría con cadenas de diferentes longitudes o la cadena vacía. m = n = 1R{ m , n }m = n = 1
- Entonces tiene que ser concatenación: . Ahora considere cómo se reconoce :
a bR1R2a b
- Si reconoce entonces no debe reconocer nada más que la cadena vacía. Entonces debe reconocer y volvemos al problema original. a b R 2 R 1 { a b , b a }R1a bR2R1{ a b , b a }
- Si reconoce pero no entonces debe reconocer . Pero entonces reconoce todas las palabras de la forma donde reconoce , por lo no debe reconocer otra cosa que . No hay forma de reconocer . a a b R 2 b R 1 R 2 u b R 1 u R 1 a b aR1una bR2siR1R2ubR1uR1aba
- Si no reconoce ni ni entonces la única forma de que reconozca es si reconoce la cadena vacía, en cuyo caso volveremos al problema original como se anteriormente, pero esta vez para . a b a R a b R 1 R 2R1abaRabR1R2
Cuando "volvemos al problema original", eso significa que la única solución para encontrar un BRE reconoce el lenguaje es encontrar un BRE más pequeño que tenga la misma propiedad. Este es un descenso infinito , por lo que no hay BRE que tenga la propiedad deseada.
No creo que haya una caracterización "agradable" de los lenguajes reconocibles por BRE, por ejemplo, como lenguajes reconocibles por una clase de autómatas "agradable".
Tenga en cuenta que los lenguajes reconocibles por BRE en realidad no son una subclase de lenguajes regulares, ya que las referencias posteriores agregan poder expresivo. Por ejemplo, es reconocido por el BRE pero es famoso por no ser regular. BRE sin referencias posteriores son solo azúcar sintáctico sobre expresiones regulares, por lo que los idiomas que pueden reconocer son una subclase de los idiomas regulares.{ww∣w∈{a,b}∗}\(.*\)\1
(abc|bac)*
.