3v4l.org

run code in 300+ 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:
29.29 ms | 407 KiB | 5 Q