Tatsächlich kann die POSIX BRE-Sprache nicht alle regulären Ausdrücke ausdrücken, da es an Abwechslung mangelt. Es kann nicht einmal alle endlichen Sprachen erkennen, geschweige denn alle regulären Sprachen.
Beispielsweise ist nicht als BRE erkennbar. Um dies zu beweisen, überlegen Sie, wie die Syntaxform der obersten Ebene lauten könnte:{ a b , b a }
- Es kann nicht zu den Einzelzeichenformen gehören, da die Sprache Wörter mit einer Länge von .> 1
- Es kann nicht da dies mit der leeren Zeichenfolge übereinstimmen würde.R∗
- Es kann nicht außer mit m = n = 1 (in diesem Fall kehren wir zum ursprünglichen Problem zurück), da dies zu Zeichenfolgen unterschiedlicher Länge oder der leeren Zeichenfolge passen würde.R{ m , n }m = n = 1
- Also muss es Verkettung sein: . Betrachten Sie nun, wie ein b erkannt wird:
R1R2a b
- Wenn erkennt eine b dann R 2 darf nichts etwas anderes als die leere Zeichenkette erkennen. Also muss R 1 { a b , b a } erkennen und wir kehren zum ursprünglichen Problem zurück.R1a bR2R1{ a b , b a }
- Wenn erkennt einen aber nicht ein b dann R 2 erkennen müssen b . Aber dann erkennt R 1 R 2 alle Wörter der Form u b, wobei R 1 u erkennt , so dass R 1 nichts anderes als a erkennen darf . Es gibt keine Möglichkeit, b a zu erkennen .R1eina bR2bR1R2u bR1uR1einb a
- Wenn weder a b noch a erkennt, besteht die einzige Möglichkeit für R , a b zu erkennen, darin, dass R 1 die leere Zeichenfolge erkennt. In diesem Fall kehren wir zum ursprünglichen Problem wie oben zurück, diesmal jedoch zu R 2 .R1a beinRa bR1R2
Wenn „wir zum ursprünglichen Problem zurückkehren“, bedeutet dies, dass die einzige Lösung, um eine BRE zu finden, die Sprache erkennt, darin besteht, eine kleinere BRE mit derselben Eigenschaft zu finden. Dies ist eine unendliche Abfahrt , daher gibt es keine BRE mit der gewünschten Eigenschaft.
Ich glaube nicht, dass es eine "nette" Charakterisierung von BRE-erkennbaren Sprachen gibt, zum Beispiel als Sprachen, die durch eine "nette" Klasse von Automaten erkennbar sind.
{ w w ∣ w ∈ { a , b }∗}\(.*\)\1
(abc|bac)*
.