Zwei Fragen:
(A) Warum Regex?
(B) Geht es nur um das Wort if oder um Wörter, in denen if als Teilstring enthalten ist?
Soweit ich weiß, ist die Negierung ^ nicht auf Zeichenketten anwendbar, sondern nur auf Zeichenklassendefinitionen, also zB [^a-z] oder ^/w
Das sind meine Gedanken:
(A) Lösche per preg_replace alle if. Danach kannst Du alle Wörter regexen, da es ja keine if's mehr gibt. Ich benutze kein str_replace, weil sonst auch if's aus Wörtern verschwinden würden, also zB in Stift.
(B) Ich hab die Frage umgedreht: Finde alle Wörter mit if drin.
Die Differenz aus diesem Ergebnis und dem Ausgangsstring wäre Dein Suchergebnis.
mfg chmee