Acho que a resposta para a sua pergunta está na própria documentação da pivot_longer(), que você pode acessar rodando o comando ?pivot_longer.
Observe a descrição dos parâmetros em questão:
names_to: A string specifying the name of the column to create from the data stored in the column names of data. Can be a character vector, creating multiple columns, if names_sep or names_pattern is provided. In this case, there are two special values you can take advantage of:
NA will discard that component of the name.
.value indicates that component of the name defines the name of the column containing the cell values, overriding values_to.
names_pattern: […] names_pattern takes the same specification as extract(), a regular expression containing matching groups (()).
No exemplo que você copiou, names_pattern vai procurar dois caracteres seguidos no nome das colunas sendo pivotadas (o ponto final é regex para “1 caractere qualquer”). O primeiro caractere vai indicar o nome da coluna para a qual aqueles valores vão (por causa do .value) e o segundo vai indicar o valor da coluna set naquela linha.
Caio, muito obrigado pela resposta.
Creio que a minha dificuldade veio de não entender que o ponto final significava a regex para “1 caractere qualquer”