Эту конструкцию утверждения / отрицательного утверждения можно использовать для проверки того, что вся строка не содержит bird
или cat
:
preg_match('/(?=^((?!cat|bird).)+$) (......)/xs', $string);
Я предполагаю, что она не особенно эффективна.Но, по крайней мере, утверждение не зависит от фактического регулярного выражения совпадения - как пример (......)
здесь.