后面的3分组相当于(b)((b)),包了3个括号 > /(b)((b))/g.exec('aa bbbb') [ 'bb', 'b', 'b', 'b', index: 3, input: 'aa bbbb' ]
第一个bb 是整个正则匹配的项bb,第二个b是第一个分组(\w) 也是b,第三个b是第二个分组((?=\1\1\1)(\1))匹配的b,(?=\1\1\1)是一个前瞻不算分组也不会匹配,所以就相当于匹配((\1)),最后一个就相当于第三个分组就是里面的(\1);
后面的3分组相当于
(b)((b))
,包了3个括号