PHP i RegEx: dzielenie łańcucha przecinkami, które nie znajdują się w nawiasach (a także zagnieżdżone nawiasy)

Dwa dni temu zacząłem pracować nad parserem kodu i utknąłem.

Jak mogę podzielić ciąg przecinkami, które nie znajdują się w nawiasach, pokażę ci, co mam na myśli:

Mam ten ciąg do przeanalizowania:

one, two, three, (four, (five, six), (ten)), seven

Chciałbym uzyskać ten wynik:

array(
 "one"; 
 "two"; 
 "three"; 
 "(four, (five, six), (ten))"; 
 "seven"
)

ale zamiast tego dostaję:

array(
  "one"; 
  "two"; 
  "three"; 
  "(four"; 
  "(five"; 
  "six)"; 
  "(ten))";
  "seven"
)

Jak mogę to zrobić w PHP RegEx.

Z góry dziękuję !

questionAnswers(7)

yourAnswerToTheQuestion