Wie kann ich meine Regex so korrigieren, dass sie nicht zu sehr mit einem gierigen Quantifizierer übereinstimmt? [Duplikat

Diese Frage hat hier bereits eine Antwort:

Meine Regex passt zu viel. Wie mache ich es halt? 5 Antworten

Ich habe die folgende Zeile:

"14:48 say;0ed673079715c343281355c2a1fde843;2;laka;hello ;)"

Ich analysiere dies mit einem einfachen regulären Ausdruck:

if($line =~ /(\d+:\d+)\ssay;(.*);(.*);(.*);(.*)/) {
    my($ts, $hash, $pid, $handle, $quote) = ($1, $2, $3, $4, $5);
}

Aber die ; am ende versaut es und ich weiß nicht warum. Sollte der gierige Operator nicht mit "allem" umgehen?