3v4l.org

run code in 500+ PHP versions simultaneously
<?php $string = "aa | bb | \"cc | dd\" | 'ee | ff'"; preg_match_all("~(?|\"([^\"]*)\"|'([^']*)'|([^|'\"]+))(?:\s*\|\s*|\z)~", $string, $matches); print_r(array_map(function($x) {return trim($x);}, $matches[1]));

preferences:
109.08 ms | 1392 KiB | 5 Q