¿Por qué mi expresión regular de Perl no codiciosa aún coincide demasiado?

Diga, tengo una línea que contiene la siguiente cadena:

"$tom" said blah blah blash.  "$dick" said "blah blah blah". "$harry" said blah blah blah.

y quiero extraer

"$dick" said "blah blah blah"

Tengo el siguiente código:

my ($term) = /(".+?" said ".+?")/g;
print $term;

Pero me da más de lo que necesito:

"$tom" said blah blah blash.  "$dick" said "blah blah blah"

Intenté agrupar mi patrón como un todo utilizando los parámetros que no capturan:

my ($term) = /((?:".+?" said ".+?"))/g;

Pero el problema persiste.

Volví a leer la sección de Nongreedy Quantifiers de Learning Perl, pero hasta ahora no me ha llevado a ningún lado.

Gracias por cualquier orientación que pueda ofrecer generosamente :)

Respuestas a la pregunta(4)

Su respuesta a la pregunta