(?(条件)真の式|偽の式) の不具合を発見

() に "?:" を付けるかどうかで結果が変わってしまう

対象テキスト: 13 に対し、

1、
\A(?<name>1)(?(<name>)(2|3))\z
結果:マッチ

2、
\A(?<name>1)(?(<name>)(?:2|3))\z
結果:みつかりません

bregonig.dll (shift_jis, unicode 両方で確認)

ちなみに対象テキストを 12 にするとどちらもマッチする