Ist es das, wonach Sie suchen?
(\b(pre1|pre2)?WORD(suf1|suf2)?\b)
Wenn Sie nach einer ganzen Zeile als Übereinstimmung suchen, versuchen Sie es mit der Regex und erhalten Sie, wenn sie von der übereinstimmenden Gruppe bei Index 1 stammt
(.*(\b(pre1|pre2)?WORD(suf1|suf2)?\b).*)
Verwenden Sie preg_match_all
um alle übereinstimmenden Gruppen zu erhalten.