http://regexcrossword.com/で面白い正規表現クロスワードを実行したところ、(.)+ や (.)* など、グループの数量化の意味がわからないことがわかりました。
http://ole.michelsen.dk/tools/regex.htmlで試してみましょう。JavaScriptと PHP 正規表現エンジンが提供されています。
合わせる文字列は「トロロロ!」(引用符なし)。(「グローバルマッチ」をオンにして何かが変更された場合、PHP モードでは何も変更されていないため、プライミングされたバージョン、つまり JS として追加されます。)
JS, (.)+ => 0: Trololo! 1: !
JS', (.)+ => 0: Trololo!
PHP, (.)+ => 0: Trololo! 0: !
JS, (.)* => 0: Trololo! 1: !
JS', (.)* => 0: Trololo!
PHP, (.)* => 0: Trololo! 1: 0: ! 1:
JS, (.){5} => 0: Trolo 1: o
JS', (.){5} => 0: Trolo
PHP, (.){5} => 0: Trolo 0: o
JS, (.){4} => 0: Trol 1: l
JS', (.){4} => 0: Trol 1: olo!
PHP, (.){4} => 0: Trol 1: olo! 0: l 1: !
これのセマンティクスとは何か、規範的な答えはありますか?