Tach!
Nur ... wozu ist das '?:' an diesen Stellen da? Ich finde keine Interneseite und kein Tutorial, in dem das erklärt wird. Und wieso nicht einfach '(^|[^0-9])' und '($|[^0-9])'?
Im Zusammenhang mit Gruppierungsklammern () ergibt ?: eine non-capturing Gruppe, sie taucht dann nicht unter den Matches auf. Das ist im PHP-Perl-Regexp-Kapitel beschrieben. Leider ist es, sich über das Inhaltsverzeichnis hangelnd, nur dann zu finden, wenn man weiß, wonach man sucht - oder einfach alles durchschaut. Leider wurde meine Anregung abgelehnt, im Inhaltsverzeichnis diese Zeichenkombinationen mit aufzuführen.
dedlfix.