Regex opcje pasujące do wielu linii, a także ignorowanie sprawy

Mam kawałek źle ukształtowanego html, czasem „brakuje”. Czasami pokazuje to także duże przypadki, a innym razem małe sprawy:

<DIV class="main">
    <DIV class="subsection1">
   <H2>
   <DIV class=subwithoutquote>StackOverflow</DIV></H2></DIV></DIV>

Chciałbym dopasować obie linie i ignorować sprawę. Ale następujący patern nie działa. (W przypadku konkatenacji próbowałem także | zamiast &)

const string pattern = @"<div class=""?main""?><div class=""?subsection1""?><h2><div class=""?subwithoutquote""?>(.+?)</div>";
Match m = Regex.Match(html, pattern, RegexOptions.IgnoreCase & RegexOptions.Singleline);

Czy powinienem dodać n * we wzorze, aby rozwiązać problem wieloliniowy?

questionAnswers(2)

yourAnswerToTheQuestion