Regex - dopasuj wszystko oprócz określonego ciągu
Potrzebuję wyrażenia regularnego (zostanie użyte w routingu ZF2, uważam, że używa on preg_match php), który pasuje do wszystkiego z wyjątkiem określonego ciągu.
Na przykład: muszę dopasować wszystko oprócz „czerwonego”, „zielonego” lub „niebieskiego”.
Obecnie mam wyrażenie regularne:
^(?!red|green|blue).*$
test -> match (correct)
testred -> match (correct)
red -> doesn't match (correct)
redtest -> doesn't match (incorrect)
W ostatnim przypadku wyrażenie regularne nie zachowuje się tak, jak chcę. Powinien pasować do „redtest”, ponieważ „redtest” nie jest („czerwony”, „zielony” lub „niebieski”).
Jakieś pomysły na naprawę wyrażenia regularnego?