Captura, se entre substring ""
(?!([^"]*"[^"]*")*[^"]*$),
Isso captura, se estiver entre "". Digamos que a sequência de teste seja
1 2 3 4 , 5 6 7, 8 9 "10 11 12 , 13 14 15," 16,17,"18,19,"20 21,22
capturado terá entre 12 e 13 anos e descansará como
http://regex101.com/r/rX0dM7/1
Agora, se eu mudar o mesmo para
(?!(.*?".*?")*[^"]*?$),
Isso captura apenas o final, entre 18 e 19.
http://regex101.com/r/hL7uS1/1
Agora, a pergunta é por que [^ "] é tão diferente de. *?" .
Em segundo lugar, qual é o significado de [^ "] * $ como se eu o removesse, nada é capturado.