O regex de que você precisa é /(.)\1{9,}/.
Teste:
#!perl
use warnings;
use strict;
my $regex = qr/(.)\1{9,}/;
print "NO" if "abcdefghijklmno" =~ $regex;
print "YES" if "------------------------" =~ $regex;
print "YES" if "========================" =~ $regex;
Aqui, o \1é chamado de referência anterior. Ele faz referência ao que é capturado pelo ponto .entre os colchetes (.)e, em seguida, {9,}pede nove ou mais do mesmo caractere. Portanto, isso corresponde a dez ou mais de qualquer caractere único.
Embora o script de teste acima esteja em Perl, esta é uma sintaxe regex muito padrão e deve funcionar em qualquer idioma. Em algumas variantes, você pode precisar usar mais barras invertidas, por exemplo, o Emacs faria você escrever \(.\)\1\{9,\}aqui.
Se uma string inteira deve consistir em 9 ou mais caracteres idênticos, adicione âncoras ao redor do padrão:
my $regex = qr/^(.)\1{9,}$/;