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/