前回はPCRE 7.2での仕様を調べたが、今回はperl 5.9.5。
/()(a\Kb)/ =~ "ab" # $& = "b", $1 = "", $2 = "ab"
/(?=ab\K)ab/ =~ "ab" # $& = ""
/(?<=\Ka)b/ =~ "ab" # $& = "ab"
この結果から、perlの\Kは
- captureには影響を与えない
- look-forwardとlook-behindの中に書いた場合も効果がある
PCREとは少し違っている。
当たり前だが、否定の中に書いた場合には効果がなかった。
/(?<!\Kc)b/ =~ "ab" # $& = "b"