Regex / DOMDocument - corresponde e substitui o texto que não está em um link

Preciso encontrar e substituir todas as correspondências de texto de uma maneira que não diferencia maiúsculas de minúsculas, a menos que o texto esteja dentro de uma marca de âncora - por exemplo:

<p>Match this text and replace it</p>
<p>Don't <a href="/">match this text</a></p>
<p>We still need to match this text and replace it</p>

A pesquisa por 'corresponder a este texto' substituiria apenas a primeira e a última instância.

[Editar] De acordo com o comentário de Gordon, pode ser preferido usar o DOMDocument nesta instância. Não estou familiarizado com a extensão DOMDocument e realmente aprecio alguns exemplos básicos para essa funcionalidade.

questionAnswers(7)

yourAnswerToTheQuestion