Regexphater: Was läuft bei diesem Regexp ab?

Beitrag lesen

Hallo,

habe folgende Daten:

aaaaaa,bbbbb,ccccc

wobei aaaa, bbb und ccccc für beliebige Buchstaben stehen.
Nun möchte ich mit einem Regexp folgendes erreichen:

ccccc,bbbbbb,aaaaa

Ich möchte also die Reihenfolge umdrehen.
Folgender Ausdruck 1 funktioniert: (.*?),(.*?),(.*)
Ebenfalls funktioniert 2: (.*),(.*),(.*)
NICHT funktioniert 3: (.*?),(.*?),(.*?)

Meine Frage: müsste nicht bei Ausdruck 2 das erste (.*) bereits die gesamte Zeichenkette matchen und somit eigentlich ein ungewünschstes Ergebnis bringen? Und wieso funktioniert Ausdruck 1 aber nicht Ausdruck 3? Warum macht es einen Unterschied, ob in der letzten Klammer das .* greedy ist oder nicht - danach kommt doch eh nichts relevantes mehr.

Vielleicht kann mir das ja jemand hier erklären.

Viele Grüße!