Ach, hast Recht, das habe ich so schnell gar nicht gesehen
Das müsste jetzt so aussehen, wobei dieser Pattern nur matcht, wenn alle Angaben vorhanden sind; wenn du das nicht möchtest, kannst du die entsprechenden Gruppen mit einem ? optionalisieren.
Code:
Regex r = new Regex("<li.*?>\\s*<a.*?>\\s*(.+?),\\s*<b>(.+?)</b>\\s*</a><br>\\s*(.+?),\\s*(.+?),\\s*<b>Tel\\.:\\s*(.+?)</b>\\s*<br>\\s*</li>");
foreach (Match m in r.Matches(HTML))
MessageBox.Show(m.Groups[1].Value + '\n' + m.Groups[2].Value + '\n' + m.Groups[3].Value + '\n' + m.Groups[4].Value + '\n' + m.Groups[5].Value);