Ich möchte das noch kurz erklären, damit es alle kapieren und den Fehler selber beheben können, falls er bei ihnen auftritt.
Bei einem preg werden sog. Delimiter verwendet. Dies ist ein Zeichen, welches den Anfang und das Ende eines RegEx festlegt. Meist wird das Slash
/ als solch ein Delimiter verwendet. Alles was rechts nach dem zweiten Delimiter kommt und kommen darf sind die sog. Modifier. Diese wiederum geben Besonderheiten an, die die RegEx Maschine beachten soll. Das bekannteste hierbei sollte das
i sein, welches für
insensitive (Groß-/Kleinschreibung wird nicht beachtet) steht.
Schaut man nun auf die RegEx von karl
sieht man rechts neben der 9 ein /. Die RegEx Maschine denkt also "Hier ist die RegEx zuende" und schaut rechts davon welche Modifier möglicherweise mitgeschickt wurden. Sieht dort einen ., kann damit nichts anfangen und bricht mit der Fehlermeldung ab.
Gemeint war an dieser Stelle jedoch ein Backslash
\ welches dazu dient, Zeichen die die RegEx Maschine normalerweise besonders behandelt als normale Zeichen anzusehen.
Zu bemerken wäre, das die RegEx Maschine innerhalb einer Zeichenauswahl (also innerhalb von
[ ]) die Zeichen .?*$ nicht besonders behandelt und somit diese nicht escaped werden müssen. Machen trotzdem fast alle. Ich selber will mich auch nicht davon freisprechen.
Stören tut es ja nicht.
Grüße,
Tekin