Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Und wie kann ich falls der 2. Ausdruck irgendwann mal gehen sollte durch alle Gruppen iterieren also alle anzeigen lassen wenn ich nicht weis wieviele Gruppen es gibt?
Werde aus der Doku irgendwie net so viel Schlauer ;-(
Die Anzahl der Gruppen entspricht der Anzahl der (nicht "escape"ten) Klammerpaare. Also hat der auskommentierte Ausdruck drei Gruppen und genau diese drei Gruppen gibt's auch als Ergebnis.
Bei Gruppen die wiederholt werden können, ist im Ergebnis immer der letzte Teil der passte. Also Beispielsweise '(.)+', da ist im Match bei jeder nicht-leeren Zeichenkette *eine* Gruppe mit dem letzten Zeichen der Zeichenkette. So etwas sieht man beim experimentieren übrigens besser, wenn man in den Testdaten nicht überall '(bl: bla)' verwendet.
Man könnte zum Testen ob die Zeile syntaktisch den gewünschten Aufbau hat r'\((\(\w{2}:.*?\))+\)' verwenden und dann mit r'\((\w{2}):(.*?)\)' und `re.finditer()` oder `re.findall()` die einzelnen Werte aus der Zeichenkette holen.