正規表現での前方参照を実装しました(BTS:192)。正規表現は他にもやってみたいこと(非欲張りな繰り返し(X*?)・強欲な繰り返し(X*+)とか、幅なしの先読み・後読み((?=X), (?!X) (?<=X) (?<!X) (?>X))とか)があるのですが、その辺はやるとしても後回しですね。
キャプチャしないグループ((?:X))くらいなら簡単につけられそうな気もしますけど。