CPF com pontuação
Para aceitar exatamente três blocos de três dígitos e um bloco final de dois dígitos, use âncoras e escape os pontos.
Regex: ^\d{3}\.\d{3}\.\d{3}-\d{2}$\nAceita: 123.456.789-00\nRejeita: 12345678900CPF sem pontuação
Se seu sistema normaliza a entrada removendo pontos e hífen, um padrão de onze dígitos pode ser suficiente para o formato.
Regex: ^\d{11}$Formato não significa CPF válido
111.111.111-11 pode passar em uma Regex de formato, mesmo que não seja um CPF válido do ponto de vista do algoritmo. Para validação cadastral, calcule os dígitos verificadores em código.
Boa estratégia de aplicação
Uma abordagem robusta é normalizar a entrada, verificar quantidade de dígitos e depois executar a regra de dígitos verificadores. Use Regex para a parte em que ela é boa: estrutura textual.
Próximo passo: teste de verdade
Use o Playground para experimentar a expressão e depois pratique no jogo com feedback de falsos positivos e falsos negativos.