#(x(?:y)?)#
Ja, non-capturing parenthesis machen auch gebrauch von Klammer und Fragezeichen ;)
ist nicht zielführend in diesem Fall.
Das sagte ich auch nicht
Allenfalls brauchst du negative lookaheadsm was das Ganze aber komplexer macht.
Warum so kompliziert?
Aber Umstellen ist einfacher
#(xy|x)#
Das bringt im genannten fall garnichts.