Explicando um pouco mais, nesse código foi usado regex, ou seja, expressão regulares.
Na expressão '^[a-zA-Z]+$' Existem metacaracteres, ou seja, caracteres com um significado especial.
Em vez de representar seu próprio valor literal, é usado para definir regras na correspondência de texto.
^ - Este é um metacaracter que indica início
[]- Estes indicam uma lista
[a-z] - neste caso letras minúsculas de 'a' até 'z'
[a-zA-Z] - Aqui letras minúsculas e maiúsculas.
+ - É um dos metacaractere quantificador, pois indica a quantidade necessária para a correspondência, neste caso + indica 1 ou mais (o quê? ver à esquerda deste), nesta expressão em particular 1 ou mais letras.
$ - Este metacaracter indica fim
Não irá corresponder palavras como:
guarda-chuva (porque tem hífen)
planeta terra (porque tem espaço)
52A (porque não começa '^' com letras '[a-zA-Z'] e também não termina com letras na quantidade de 1 ou mais)
Neste site dá para testar valores usando a expressão regular acima
https://regex101.com/