Java: dividir una cadena separada por comas pero ignorar comas entre comillas

Tengo una cadena vagamente como esta:

foo,bar,c;qual="baz,blurb",d;junk="quux,syzygy"

que quiero dividir por comas, pero necesito ignorar comas entre comillas. ¿Cómo puedo hacer esto? Parece que falla un enfoque de expresión regular; Supongo que puedo escanear manualmente e ingresar a un modo diferente cuando veo una cita, pero sería bueno usar bibliotecas preexistentes. (editar: Supongo que me refería a las bibliotecas que ya forman parte del JDK o ya forman parte de las bibliotecas de uso común, como Apache Commons.

la cadena anterior debe dividirse en:

foo
bar
c;qual="baz,blurb"
d;junk="quux,syzygy"

Nota: Este NO es un archivo CSV, es una sola cadena contenida en un archivo con una estructura general más grande

Respuestas a la pregunta(9)

Su respuesta a la pregunta