O problema está na sua expressão regular.
O que você tenteou fazer para especificar a quantidade das listas não funciona. (Pelo menos nunca tinha visto essa sintaxe, e todos os testes que eu fiz aqui não funcionaram desse modo)
No caso pra você poder especificar as quantidades das listas você precisa especifica-la logo em seguida:
[0-9]{3}.[0-9]{3}.[0-9]{3}-[0-9]{2]
Mas tem alguns outros pontos que eu consideraria:
Em expressões regulares o “.” (ponto) significa qualquer caractere, nesse caso a expressão iria casar com as possíveis strings passadas:
111g332h312-11
Ou com qualquer outra coisa que você colocasse no lugar do ponto.
Outro ponto é que seria interessante tornar os pontos opcionais.
Até mesmo porque no código que você passou ao chamar os métodos você passou só os números, não iria casar com a regex desse jeito.
Com essas alterações ficaria assim:
[0-9]{3}\.?[0-9]{3}\.?[0-9]{3}-?[0-9]{2}
Mas se para para olhar, temos um trecho repetido, você vai ter trêz vezes uma sequencia de três números, ainda daria pra simplificar essa regex
criando um grupo que ira casar com uma lista de 3 números seguidos por um ponto opcional, esse grupo repetido 3 vezes, seguido de um hífen também opcional seguido de uma lista de 2 números.
No final das contas eu faria assim:
^([0-9]{3}\.?){3}-?[0-9]{2}$
Observe que o “.” (ponto) está escapado com a barra, para que ele realmente signifique “um ponto” e não qualquer caracter.
Apenas lembrando que o que o guedes postou deve resolver seu problema quanto à formatação do CPF, e não quanto à validação (aí entra o quesito do cálculo com o dígito verificador).