Почему следующее регулярное выражение:
$regex = '^([abc]+)$|^([012]+)$|^([23]+)$|^([123]+)$';
$toMatch = '123';
preg_match('/'.$regex.'/', $toMatch, $matches);
приводит к такому результату:
array(5) {
[0]=>
string(3) "123"
[1]=>
string(0) ""
[2]=>
string(0) ""
[3]=>
string(0) ""
[4]=>
string(3) "123"
}
Почему элементы 1,2 и 3 являются пустыми строками, если они не совпадают ни с чем ? Как получаются «пустые» матчи?
заранее спасибо