正規表現マッチングで、名前付きキャプチャを最初に取り入れたのは Python で、Perl も 5.10 以降で公式に使えるようになっています。これを使うとスキャナでトークンのタプル (種別、値) を取得するのが簡単になります。 試しに Wiki のインライン・スキャナのものすごく簡略したものを書いてみました。WikiCreole の流儀によるダブル角括弧で囲んだ WikiName を検出するだけです。まずは、最初に名前付きキャプチャを採用したことに敬意を表して、Python から。 #!/usr/bin/env python # -*- coding: utf-8 -*- import re inline_source = """[[Python]] does not have [[Regular Expression]] literal. [[Regular Expression]]