Не регулярное выражение, но работает. Добавит ровно 1 дополнительный символ, если все символы слова одинаковы:
echo ab aa cc de mn | \
awk '{
for(i=1;i<=NF;i++)
{
char=substr($i,1,1)
for(j=2;j<=length($i);j++)
{
if(substr($i,j,1)==char) y=1
else
y=0
char=substr($i,j,1)
}
if(y) $i=$i""char
}
print $0
}'
ab aaa ccc de mn #output