匹配捕获组固定次数

我有一堆5个字母的字符串。对于每个字符串,我只想在该字符串包含3个相同字母的实例时进行匹配,即:

Case 1: 'aabbc'  ->  no match
Case 2: 'bbbcc'  ->  match 'bbb'
Case 3: 'ddcdc'  ->  match 'ddd'

我最好的正则表达式尝试是:

(.){1}(?!\1)*\1{1}(?!\1)*\1{1}

这适用于情况1(无匹配项)和情况2(3个实例相邻),但不适用于情况3(3个实例由至少一个其他字母分隔)。是否存在适用于情况3的正则表达式?理想情况下,我还要从字符串中提取3个匹配实例的位置。