長谷部と申します。
preg_match()の挙動についてお伺いします。
次のようなコードを書いたのですが、
preg_match('/^(string)?;(string)?;(string)?$/', ';string;', $matches);
この場合、$matches[1]と$matches[3]には空文字列が入るだろうと期待していたのに、
実際には$matches[1]に空文字列が入り、$matches[3]には値がセットされませんでした。
これはバグでしょうか。それとも仕様でしょうか。
[テスト環境]
Windows XP Professional
Apache 2.0.59
PHP 5.2.0