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?

questionAnswers(3)

yourAnswerToTheQuestion