Bom dia, Gabriel! Tudo bem?
Testei a expressão regular ^([\w-]\.?)+@([\w-]+\.)+([A-Za-z]{2,4})+$
como apresentada nessa atividade no Regex101 e ele detectou normalmente.
Mas realmente a questão do grupo 1 ficou falha (pegando somente o caracter antes do @). Lembrando que o professor até comenta na atividade que essa é uma possível solução, então temos outras maneiras de fazer também. Podemos tentar contornar essa situação colocando um mais após o [\w-]
para ele detectar um ou mais caracteres:
^([\w-]+\.?)+@([\w-]+\.)+([A-Za-z]{2,4})+$
Mas ainda assim ele trava se detectar um ponto antes, então podemos incluir o ponto na primeira classe, mais ou menos assim:
^([\w.-]+\.?)+@([\w-]+\.)+([A-Za-z]{2,4})+$
Essa discussão do regex ideal para e-mail é bem complicada, pois a cada dia mais caracteres são aceitos na parte do endereço, então adaptamos para ficar o mais real possível.
Bons estudos!