非捕获组的就是为了提高匹配效率。

EX:

$str = "abcd";
preg_match('@(?:a)(b)(c)(d)@',$str,$m);
var_dump($m);

 

DISPLAY:

array(4) {
  [0]=>
  string(4) "abcd"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
}