Captura, si está entre la subcadena ""
(?!([^"]*"[^"]*")*[^"]*$),
Esto captura, si está entre "". Digamos que la cadena de prueba es
1 2 3 4 , 5 6 7, 8 9 "10 11 12 , 13 14 15," 16,17,"18,19,"20 21,22
capturado será entre 12 y 13 y descansar como
http://regex101.com/r/rX0dM7/1
Ahora si cambio lo mismo a
(?!(.*?".*?")*[^"]*?$),
Esto captura solo el final, entre 18 y 19 años. Algo así
http://regex101.com/r/hL7uS1/1
Ahora la pregunta es por qué es [^ "] tan diferente de. *?" .
En segundo lugar, ¿cuál es el significado de [^ "] * $ como si lo elimino, no se captura nada.