存在を見つけるものです。それがマッチし得る文字列の長さが固定でなければなりません〔繰り返しを指定できません〕。各選択肢は〔固定長でなければいけませんが〕すべて同じ長さである必要はありません。(?<=bullock|donkey)とはできますが、、(?<!dogs?|cats?)は、コンパイル時にエラーになります。異なる長さの文字列にマッチするような選択肢は、戻り読み言明の最上位においてのみ使用可能です。つの異なる長さの文字列にマッチし得るため、許されません。用いるように書き換えたものは使用可能です。カレントの位置の前に十分な文字がない場合は、マッチは失敗とみなされます。文字列の終端でのマッチングに特に有用です。(任意の種類の)複数の言明を連続して指定することも可能です。対象文字列の同じ場所に独立して適用されることに注意して下さい。でないことが確認されます。ないというパターンにマッチするものではありません。これを行うパターンは次のようになります。文字が数字であることを確認します。でないことを確認します。言明は、自由に組み合わせてネスト可能です。マッチするパターンです。繰り返しもできません。同じことを複数回言明しても意味がないからです。キャプチャ用サブパターンの番号付けにあたってカウントされます。肯定の言明に対してのみ行われます。否定の言明の中で行っても無意味だからです。用いることができます。マッチするかどうか試されます。速くマッチに失敗させるために、こうした動作を停止させることが有用な場合があります。次の対象文字列に適用した場合を考えてみましょう。桁等々と続けられ、最後には完全にマッチが失敗します。その後再評価されないよう指定することができます。マッチに失敗した時点で、ただちにマッチが取り止めることが可能となります。始まる特別なカッコを用います。起こらないようにします。それより前の要素に対するバックトラックは、通常と同様に動作します。対象文字列のカレントの位置に固定されたかのように、文字列とマッチします。上の簡単な例では、できるだけ多くのものを呑み込むよう繰り返しが最大化されました。数字の並び全体に対するマッチだけしか行われません。この構文には、どんな複雑なものでも、任意のサブパターンを含むことができ、ネストも可能です。効率的なマッチを行うことができます。次の簡単なパターンを見てましょう。abcd$マッチし得ない長い文字列に適用した場合を考えます。後に続く文字が残りのパターンにマッチするかどうか調べます。パターンを次のように少し変更します。文字列全体にマッチします。文字を除く文字列に、という風に動作します。検索は、やはり文字列全体に対して、右から左に、行われるため効率は良くありません。パターンを次のようにしてみましょう。対してバックトラックは行われず、文字列全体にのみマッチします。テストが失敗すると、マッチはただちに失敗します。実行時間にかなりの差が生じます。かかってしまう事があります。