La expresión regular que necesita es /(.)\1{9,}/.
Prueba:
#!perl
use warnings;
use strict;
my $regex = qr/(.)\1{9,}/;
print "NO" if "abcdefghijklmno" =~ $regex;
print "YES" if "------------------------" =~ $regex;
print "YES" if "========================" =~ $regex;
Aquí \1se llama referencia inversa. Hace referencia a lo que está capturado por el punto .entre los corchetes (.)y luego {9,}pide nueve o más del mismo carácter. Por lo tanto, esto coincide con diez o más de cualquier carácter.
Aunque el script de prueba anterior está en Perl, esta es una sintaxis de expresiones regulares muy estándar y debería funcionar en cualquier idioma. En algunas variantes, es posible que necesite utilizar más barras invertidas, por ejemplo, Emacs le haría escribir \(.\)\1\{9,\}aquí.
Si una cadena completa debe constar de 9 o más caracteres idénticos, agregue anclas alrededor del patrón:
my $regex = qr/^(.)\1{9,}$/;