「foo でないものの後に続いている bar」にマッチさせたいという場合には否定戻り読み (negative lookbehind) が使える. 上の例を表す正規表現は (?<!foo)barとなる. 「foo または hoge でないものの後に続いている bar」も同様に (?<!foo|hoge)barと書けたら嬉しいのだが,可変長の戻り読みを許しているエンジンは少ないらしい. lazyeagle: Variable length lookbehind not implemented in regex だと… http://twitter.com/lazyeagle/status/3841821998 finalfusion: @lazyeagle 戻り読みで可変長許しているのは少数派ですよ。 http://twitter.com/finalfusion/status/38418694