平衡组用于匹配嵌套层次结构,常用于匹配HTML标签(当HTML内容不规范,起始标签和结束标签数量不同时,匹配出正确配对的标签),在此把表达式统一以`\w`为例。
* `(?'group'\w)` 捕获的分组(`\w`匹配到的内容)命名为`group`,并压入堆栈
* `(?'-group'\w)` 捕获分组(`\w`匹配到的内容)后,弹出`group`分组栈的栈顶内容(最后压入的捕获内容),堆栈本来为空,则本分组的匹配失败
* `(?(group)yes|no)` 如果`group`栈非空匹配表达式`yes`,否则匹配表达式`no`
* `(?!)` 零宽负向先行断言,由于没有后缀表达式,试图匹配总是失败