regexp dividir string por vírgulas e espaços, mas ignorar as aspas e parênteses internos

Preciso dividir a string por vírgulas e espaços, mas ignorar as aspas internas, aspas simples e parênteses

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

de modo que a matriz resultante terá

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

minha atual regexp é

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

mas isso está ignorando chars especiais e ainda dividir as vírgulas dentro de aspas, a matriz resultante é:

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

ps: isso não é csv

Muito Obrigado

questionAnswers(2)

yourAnswerToTheQuestion