Hallo,
"^2" ist nicht definiert in der Sprache der regulären Ausdrücke, deswegen dürfen Sie es (zunächst) nicht benutzen.
Wenn Sie es definieren und das korrekt machen, dann können Sie es auch verwenden.
Sie müssten also etwas schreiben, wie:
Für ein Alphabet \( X \), das alle Elemente enthält, die zu den betrachteten regulären Ausdrücken gehören [also die leere Menge, die Zeichen des zu den regulären Ausdrücken gehörenden Alphabets \( E \) UND die syntaktischen Symbole \( +,*,(,),] \) und ein Wort \( x \in X^{\star} \) sei definiert:
\( (x)^2 =_{def} xx \)
Auf diese Weise können Sie einfach auf syntaktischer Ebene den Potenzoperator definieren und müssen sich keine Sorgen machen, dass bei der Auswertung etwas schiefläuft (etwa beide Male dasselbe Symbol dasteht). Sie haben ja nur einen String kopiert, also bspw.
\( ((a+b)^\star)^2 = (a+b)^\star(a+b)^\star \)
und dadurch einen neuen regulären Ausdruck erstellt, bei dessen Auswertung die beiden Kopien separat behandelt werden. Auf diese Weise dürfen Sie, wenn Sie es korrekt machen, alle möglichen Abkürzungen definieren, wenn Sie wollen (beliebt ist auch der "^+"-Operator: \( (x^+) =_{def} xx^{\star} \). (Allerdings verbraucht man damit oft mehr Zeit als man später durch die Abkürzung einspart.)
Viele Grüße
Lukas König