正規表現で、あるパターンでないものにマッチしたい時はどうするのか、と思って Perl CookBook を引いてみたら、6.18. Expressing AND, OR, and NOT in a Single Pattern に下のように書いてあった。 True if pattern /PAT/ does not match, like $var !~ /PAT/: /^(?:(?!PAT).)*$/s True if pattern BAD does not match, but pattern GOOD does: /(?=^(?:(?!BAD).)*$)GOOD/s 流石にこれは暗号ですね。解読不能なコードを書くのに使えそう。