Das sieht eher so aus, als wenn du den Text aufteilen willst. Insofern würde ich zu preg_split greifen:
preg_split('/([(?:COMMA|SPACE|NEWLINE|SPACE|TITLE)(?:=[^]]*)?])/', $s, 0, PREG_SPLIT_DELIM_CAPTURE);
Prima, vielen Dank! Wieso entstehen bei dem Ausdruck eigentlich leere Werte?
Bei Deinem Beispiel hat das Array zwei leere Einträge und bei meinen Tests habe ich auch ständig welche.