регулярное выражение разделяет строку запятыми и пробелами, но игнорирует внутренние кавычки и скобки

Мне нужно разделить строку запятыми и пробелами, но игнорировать внутренние кавычки, одинарные кавычки и скобки

$str = "Questions, \"Quote\",'single quote','comma,inside' (inside parentheses) space #specialchar";

так что результирующий массив будет иметь

[0]Questions
[1]Quote
[2]single quote
[3]comma,inside
[4]inside parentheses
[5]space
[6]#specialchar

мое регулярное выражение

$tags = preg_split("/[,\s]*[^\w\s]+[\s]*/", $str,0,PREG_SPLIT_NO_EMPTY);

но это игнорирование специальных символов и разбиение запятых внутри кавычек, результирующий массив:

[0]Questions
[1]Quote
[2]single quote
[3]comma
[4]inside
[5]inside parentheses
[6]space
[7]specialchar

PS: это не CSV

Большое спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос