咨询一个正则表达式的写法解决办法

咨询一个正则表达式的写法
未拆分前的字符串,示例如下:(字符串也许没有分行符,只是为了直观)

<div class="begin1st***任意字符***" id="1" ***任意字符***><div class="***任意字符***"></div>***任意字符***</div>
<div class="begin2nd***任意字符***" id="2" ***任意字符***>***任意字符***</div>          
<div class="begin ***任意字符***" id="3" ***任意字符***><div class="***任意字符***"></div>***任意字符***</div>
<div class="begin***任意字符***" id="4" ***任意字符***><div class="***任意字符***"></div><a***任意字符***</a></div>
<div class="begin ***任意字符***" id="5" ***任意字符***>***任意字符***</div>

目前发现的规律是: 
每个匹配结果是以<div class="begin开头,以相对应的</div>作为结尾。中间可能嵌套其它成对的div以及其它代码。
每个结果都包含id="整数"。

现在需要一条正则把每一行作为一个结果匹配出来。代感激涕零。。。
------解决思路----------------------
源字符串,给你分行了,容易观察。

<div id="content">
<div class="begin1st content" id="1" nn="gn">
<a href="http://xxx" target="_blank">xxx</a>
<div class="inner">xxx</div>
</div>
<div class="begin2st content" id="2" nn="dn">
<a href="http://xxx" target="_blank">xxx</a>
</div>
<div class="begin abstract" id="3" nn="dn">
<div class="add">
</div>
xxx
</div>
<div class="begin-ext" id="4">
<div class="add"></div>
<a href="http://xxx" target="_blank">xxx</a>
</div>
<div class="begin abstract" id="5" nn="gn">xxx</div>
</div>


正则
(?is)<div class="begin[^>]*>((?<o><div[^>]*>)
------解决思路----------------------
(?<-o></div>)
------解决思路----------------------
(?!</?div>).)+(?(o)(?!))</div>