(?Ppattern)という正規表現について

上で説明した symfony のルーティング処理で、パラメータ名を含むパターンなどがコンパイルされると、「(?Ppattern)」という正規表現になります。

この正規表現ですが、マッチしたパターンを後方参照する際に、名前で取り出すための記法です。
Perl正規表現としては、

  • (?'NAME'pattern)
  • (?pattern)

という書き方が元になっているようですが、オプションとして「(?Ppattern)」という書き方でもよいようです。

http://fleur.hio.jp/perldoc/perl/5.9.5/pod/perlre.mix.html の「拡張パターン Extended Patterns」のあたりを参照。