3v4l.org

run code in 300+ PHP versions simultaneously
<?php $query = "-exclude -\"exclude phrase\" \"phrase 1\" keyword +k:v -k2:v2 +\"q kw:2"; $ATOM_REGEX = '"[^"]+"|[^"\s]+'; preg_match_all("/(?P<flag>[-+])?(?P<key>$ATOM_REGEX:)?(?P<value>$ATOM_REGEX)/", $query, $match, PREG_SET_ORDER); print_r($match);
Output for 4.3.3 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.7 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.6 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Array ( [0] => Array ( [0] => -exclude [flag] => - [1] => - [key] => [2] => [value] => exclude [3] => exclude ) [1] => Array ( [0] => -"exclude phrase" [flag] => - [1] => - [key] => [2] => [value] => "exclude phrase" [3] => "exclude phrase" ) [2] => Array ( [0] => "phrase 1" [flag] => [1] => [key] => [2] => [value] => "phrase 1" [3] => "phrase 1" ) [3] => Array ( [0] => keyword [flag] => [1] => [key] => [2] => [value] => keyword [3] => keyword ) [4] => Array ( [0] => +k:v [flag] => + [1] => + [key] => k: [2] => k: [value] => v [3] => v ) [5] => Array ( [0] => -k2:v2 [flag] => - [1] => - [key] => k2: [2] => k2: [value] => v2 [3] => v2 ) [6] => Array ( [0] => + [flag] => [1] => [key] => [2] => [value] => + [3] => + ) [7] => Array ( [0] => q [flag] => [1] => [key] => [2] => [value] => q [3] => q ) [8] => Array ( [0] => kw:2 [flag] => [1] => [key] => kw: [2] => kw: [value] => 2 [3] => 2 ) )
Output for 4.3.0 - 4.3.2
Array ( [0] => Array ( [0] => -exclude [1] => - [2] => [3] => exclude ) [1] => Array ( [0] => -"exclude phrase" [1] => - [2] => [3] => "exclude phrase" ) [2] => Array ( [0] => "phrase 1" [1] => [2] => [3] => "phrase 1" ) [3] => Array ( [0] => keyword [1] => [2] => [3] => keyword ) [4] => Array ( [0] => +k:v [1] => + [2] => k: [3] => v ) [5] => Array ( [0] => -k2:v2 [1] => - [2] => k2: [3] => v2 ) [6] => Array ( [0] => + [1] => [2] => [3] => + ) [7] => Array ( [0] => q [1] => [2] => [3] => q ) [8] => Array ( [0] => kw:2 [1] => [2] => kw: [3] => 2 ) )

preferences:
238.36 ms | 403 KiB | 342 Q