Wir wissen, dass reguläre Ausdrücke (RE) mit endlichen Automaten (FA) implementiert werden. In einigen Sprachen (wie JavaScript) in RE gibt es Funktionen wie "Erfassen von Klammern" mit "Rückreferenzen":
(x) Entspricht 'x' und merkt sich die Übereinstimmung, wie das folgende Beispiel zeigt. Die Klammern werden als Erfassungsklammern bezeichnet. Die '(foo)' und '(bar)' im Muster / (foo) (bar) \ 1 \ 2 / stimmen überein und merken sich die ersten beiden Wörter in der Zeichenfolge "foo bar foo bar". Die \ 1 und \ 2 im Muster stimmen mit den letzten beiden Wörtern der Zeichenfolge überein.
Ich möchte wissen, ob dieses Muster /(foo) (bar) \1 \2/
tatsächlich ein RE gemäß der Definition von RE ist, die wir in der theoretischen formalen Sprache haben, oder ob es etwas Mächtigeres ist. Und wenn ja, würde ich gerne wissen, ob diese Art von Funktion auch mit FA oder auf andere Weise implementiert ist (insbesondere wie sie implementiert wird).