C#正则表达式循环截取最外层的括号的值,可能某个段里有2层[],需要取第外层[]的值

string str="[sernumber=1dsadasdcn=code22323]
[sernumber=1dsadasdcn=[code2]22323]
[sernumber=1dsadasdcn=code22323]
[sernumber=1dsadasdcn=code22323]"

需要取第外层[],是最外层还是第n层?这个可以用递归平衡组
https://www.xuebuyuan.com/2139326.html