PHP:正则表达式中的条件子模式


PHP: Conditional subpattern in regex?

我在PHP:中尝试过

<?php
 $greets1="hello jack"; $greets2="hi john";
 preg_match('/(hello)(?(1).*)/',$greets1,$result);
?>

我原以为数组$result包含hellojack,但它只捕获hello。为什么?

模式是正确的,但它没有捕获匹配的第二部分。尝试:

/(hello)((?(1).*))/