Me deparei com um erro ao implementar o regex conforme apresentado na aula para pegar os grupos do número do telefone e imprimi-los.
Inicalmente usando a expressão conforme apresentada na aula
([0-9]{2,3})?([0-9]{2})([0-9]{4,5})([0-9]{4})
para números de celulares obtinha o seguinte resultado
*+551 (39) 8152 - 3662 *
e o objetivo era obter
+55 (13) 98152 - 3662
aqui vale salientar o conceito de greedy (guloso/ganancioso) e non-greedy. Uma expressão greedy vai dar match com o máximo de caracteres possíveis e adicionar o "?" tornaria a expressão non-greedy, dando match com o mínimo atendido pelo requisito estabelecido pelo usuário. No caso do nosso exemplo 2 dígitos para o código internacional é o mínimo necessário que atende o requisito. Logo faz necessário que o caracter "?" seja colocado imediatamente junto com a expressão que verifica o código internacional e dentro do grupo de recorte delimitado pelos parenteses.
([0-9]{2,3}?)([0-9]{2})([0-9]{4,5})([0-9]{4})
Isso deve resolver o problema com números de celulares que não estão sendo representados corretamente. Como na aula ele usou um número de telefone fixo o problema acabou passando despercebido.
Mais informações, confiram a documentação de Regex para Python https://docs.python.org/3/library/re.html