Mir ist es erst gar nicht augefallen, aber ab PHP 5.2.4 gibt es bei Regex auch eine Möglichkeit zum reseten von Suchmustern. Der neue Befehl K macht es möglich. So lässt sich auch eine Art von IF-Abfrage erstellen. Auch könnte so die Performance etwas gesteigert werden.
Ein Beispiel wie es aussehen könnte, gibt es hier:
Suchmuster mit Reset
[0-9]+K(.*)b