Müssten nicht die ersten beiden Fragezeichen bei 3) hinter die Klammern?
Nein, denn nur das Komma, bzw. das Semikolon soll optional sein. Das Komma wird nur bei mehrere Parametern des selben Typs gebraucht, das Semikolon trennt mehrere Parameter (wird beim letzten also nicht gebraucht).
Ah, du hast ja sowas von recht. Daran hab ich gar nicht gedacht. Nett, was der Compiler alles kann (letztlich steckt in diesem ja ebenfalls ein RegEx-Parser).
Andere Möglichkeit: bei 3) die Sternchen nach den Klammern in Fragezeichen umwandeln, also so
Code:
(\((([\s]*[\w]+[\s]*,?)?:[\s]*[\w]+;?)?\))?
Funktioniert auf regexe.de ohne zu tiefe Verschachtelung.
MfG Dalai