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.

questionAnswers(2)

yourAnswerToTheQuestion