Depois de assistir as aulas fui tentar realizar o RegEx de cabeça e consegui selecionar tudo o que eu precisava com o seguinte código:
const regex = /\[([^\]]*)\]\(([^\)]*)\)/gm
Ou seja, selecionei tudo que estava dentro de colchetes:
/\[([^\]]*)\]
E depois, exatamente da mesma forma, selecionei tudo que estava dentro de parênteses:
\(([^\)]*)\)
Minha lógica era: se funciona para um, também deve funcionar para outro. Minha dúvida é: existe algum motivo especial para a professora ter utilizado um código mais complexo na aula ou foi puramente para exemplificar que existiam outras sintaxes em regex? Ou existem outras coisas dentro de parênteses que não serão link neste MD e por isso o código precisa ser mais especificado?