Olá Diógenes!
Peço desculpas pela demora em obter um retorno.
O grupo [\w-] realmente representa apenas um caractere alfanumérico ou um traço. Quanto à sua pergunta se essa restrição do \w estaria errada para o início, a resposta é que depende do contexto em que o regex está sendo utilizado. Se você sabe que o início do endereço de e-mail sempre será um caractere alfanumérico ou um traço, então não há problema em utilizar essa restrição. Caso contrário, é melhor remover essa restrição para garantir que o regex capture todos os endereços de e-mail válidos.
O \.? representa um ponto opcional, ou seja, pode ter zero ou um ponto.
Já a expressão ([\w-]\.?)+ significa que o grupo [\w-]\.? pode se repetir uma ou mais vezes. Esse grupo representa um caractere alfanumérico ou um traço seguido de um ponto opcional.
Na segunda parte do regex, depois do @, a expressão ([\w-]+\.)+ significa que o grupo [\w-]+ deve ter um ou mais caracteres alfanuméricos ou traços, seguido de um ponto obrigatório, e esse grupo pode se repetir uma ou mais vezes.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓