Para o target
<h1 id="regex" class="form">Expressões regulares não são tão difíceis.</h2>
a regex
<(h1|h2).+?>([\w\sõãí.]+)<\/\1>
não está funcionando. Por quê?
Para o target
<h1 id="regex" class="form">Expressões regulares não são tão difíceis.</h2>
a regex
<(h1|h2).+?>([\w\sõãí.]+)<\/\1>
não está funcionando. Por quê?
Porque você está fazendo um back-reference ao primeiro grupo, ou seja, à tag h1, que nunca será igual ao h2 que está no fechamento.
Você pode alterar o pattern para
<(h1|h2).+?>([\w\sõãí.]+)</(h1|h2)>
ou corrigir o target para
<h1 id="regex" class="form">Expressões regulares não são tão difíceis.</h1>