Đây có phải là thứ bạn đang tìm kiếm không?
(\b(pre1|pre2)?WORD(suf1|suf2)?\b)
Nếu bạn đang tìm kiếm toàn bộ dòng dưới dạng một kết quả phù hợp, hãy thử bên dưới regex và lấy nếu từ nhóm phù hợp ở chỉ mục 1
(.*(\b(pre1|pre2)?WORD(suf1|suf2)?\b).*)
Sử dụng preg_match_all
để có được tất cả các nhóm phù hợp.