Es scheint mehrere Lösungen für das Problem zu geben. Ich würde ein paar ausprobieren und ggf die schnellste wählen.
...somit dürfte der ganze Rest - die Diskussion über enthaltenes RegEx (oder auch nicht) - total egal sein, solange die Funktion am Ende auch funktioniert, richtig?