Obrigado pela resposta, Gabriel, mas ela ainda me deixou com dúvida.
Fiz alguns testes e agora entendi.
Talvez nem todo mundo tenha tido o mesmo raciocínio que eu, mas basicamente a resposta para minha pergunta é:
A âncora pega tudo que estiver dentro da expressão!
Nesse exemplo da expressão para pegar um CPF, definimos todos os caracteres exatamente como queremos (ao invés de usar um .* no meio para "facilitar") e ancoramos o começo e o fim, então somente pegaremos CPFs sozinhos numa string.
Mas a conclusão prática do meu raciocínio é: não faz sentido usar uma âncora seguida de .* (^.*) por exemplo, por que ela vai pegar a string toda desde o começo (a não ser que queiramos justamente a string toda até certo ponto).