Von JS-Minifiern habe ich schon gehört und da macht es auch Sinn, aber bei einer Server-Skriptsprache

... geht dir der Speicherplatz auf deinem Server aus

?
Sei's drum, fangen wir mal an:
So kommt der Regex auch mit Escapings klar:
Quelltext
Das gleich dann noch mit Double Quotes - Heredoc und Nowdoc überlasse ich dir

...
Wenn du mit einem Regex eine Stelle wie ein einzelnes Leerzeichen gefunden hast, kannst du von dort aus allerdings unmöglich feststellen, ob du dich in einem String befindest. Du musst stattdessen den gesamten Code matchen:
Quelltext
1:
| ^(//.*|[^']|'(\\.|[^\\'])*')* |
Heißt quasi: "Code besteht aus Kommentaren, Nicht-Quote-Zeichen oder String-Literalen".
Das hier funktioniert damit schonmal, aber es fehlen natürlich beispielsweise noch die zwei anderen Comment-Arten.
Jetzt können wir endlich nach Whitespace suchen, der
nicht zwischen zwei alphanumerischen Zeichen steht:
Quelltext
1:
| ^(\w\s+\w|(?<space>\s)|//.*|[^']|'(\\.|[^\\'])*')* |
Mit deinem Code (mit Single Quotes) funktioniert es schonmal, siehe Bild.
...und langsam dürfte klar sein, warum man für so etwas keine Regular Expressions mehr benutzt

...