array(3) {
[0]=>
string(16) "hello world test"
[1]=>
string(0) ""
[2]=>
string(12) "hello world "
}
When (another)? didn't match, I would assume \1 also match an empty string,
however (\1?) part captured "hello world ", is this a bug or I
misunderstand the syntax?