Michael Richter: Regulärer Ausdruck mit optionalem Inahlt

Beitrag lesen

hallo community

ich hab ein problem, das richtige suchmuster zu erstellen um einen bestimmten string zu durchsuchen

also erstmal der teil um den es geht:
----------------------
Wert1: 12:34:56
Wert2: bla bla bla
Wert3: [xyz]
Wert4: 1234
----------------------
dieser teil kommt 0-16 mal auf im kompletten string vor

was ich bisher als suchmuster mit preg_match_all() benutzt habe:

/Wert1: ([0-9]+):([0-9]+):([0-9]+)\nWert2: (.*?)\nWert3: [(.*?)]\nWert4: ([0-9]+)/

das funktioniert auch soweit
das problem ist, dass Wert3 optional ist und nicht immer vorkommt und wenn der fehlt, dann findet die funktion diesen eintrag nicht

also wie muss ich das suchmuster verändern, damit Wert3 optional gilt?

mfg
Michael