Regex - corresponde a qualquer coisa, exceto strings específicas

Eu preciso de um regex (será usado no roteamento ZF2, acredito que usa o preg_match do php) que corresponde a qualquer coisa, exceto uma string específica.

Por exemplo: preciso corresponder a qualquer coisa, exceto "vermelho", "verde" ou "azul".

Eu tenho atualmente o regex:

^(?!red|green|blue).*$

test -> match (correct)
testred -> match (correct)
red -> doesn't match (correct)
redtest -> doesn't match (incorrect)

No último caso, o regex não está se comportando como eu quero. Deve corresponder "redtest" porque "redtest" não é ("vermelho", "verde" ou "azul").

Alguma idéia de como consertar o regex?