長谷部と申します。 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