рассмотрите следующий код:
perl -wne 'chomp;print if m/[^(?:test)]/'
Я был удивлен, увидев, что группировка внутри класса символов работает. Чем это отличается от (?!pattern)?
(?!pattern)
/[^(?:test)]/
не группируется в классе char. Все символы, перечисленные в [] после ^, будут обрабатываться буквально, и это будет соответствовать любой строке, содержащей символ, отличный от ( ? : t e s t )
(
?
:
t
e
s
)