the regex:
Code:
# Region
<tr>
\s*<td\s+class="grey11">Region:</td>\s*
<td\s+class="b11\s+b">(?<Region>.+?(?=</td>))</td>
\s*
</tr>
\s*

</table>
\s*

#Optional AD
(
<div\s+class="wid342\s+fl\s+padtop15">
\s*
<div\s+class="linkicon\s+listicon\s+lh16">
\s*
<a(?:[^>]*?)>
(?:.+?)</a>\s*</div>\s*</div>
){0,1}

</div>
\s*

(
# Amenities
<div\s+class="wid342\s+fl\s+mtop10(?:[^>]*?)>
\s*
<div\s+class="pad10">
(?:.+?)
<ul\s+class="chkbox">
(?<Amenities>.+?)
</ul>
\s*
</div>
){0,1}



(?:.+?)

#Extra
(
<div\s+class="b10\s+lh16\s+vpad10">
\s*(?<Extra>.+?)\s*
</div>
){0,1}

the text:


<tr>
<td class="grey11">Drive</td>
<td class="b11">Front</td>
</tr>
<tr>
<td class="grey11">Transm</td>
<td class="b11 b">Mech</td>
</tr>
<tr>
<td class="grey11">Intr</td>
<td class="b11">Leather</td>
</tr>

<tr>
<td class="grey11">COND/td>
<td class="b11">USED</td>
</tr>
<tr>
<td class="grey11">Region/td>
<td class="b11 b">QQQQQQQQQQQQQ</td>
</tr>
</table>
</div>
<div class="wid342 fl mtop10" style="background:#F5F5F5">
<div class="pad10">
<h4 class="darkred">What's inside</h4>
<ul class="chkbox">
<li class="par">
<ul>
<li>ABS</li>
<li>Acs</li>
<li>HUD</li>
<li>Immo</li>
</li>
<li class="par">
<ul>
<li>Chairs</li>
<li>Alarm</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="wid342 fl oh">
<p class="vmargin10">
<h4>Extra info</h4>
<div class="b10 lh16 vpad10">
Good condition. Assembled in ---------
</div>




Why doesn't it return me "Good condition. Assembled in ---------" for "Extra" group? This group is actually optional; that's why I marked it with {0,1}. And if I remove {0,1} the regex returns me it's expected value but only in this particular case.

What's wrong to my regex?