Если вы собираетесь использовать регулярные выражения, почему бы не очистить его одним вызовом
$("p,h1,h2,h3,h4,h5,h6,li,dd,dt,a").each(function(){
var $this = $(this);
$this.html($this.html().replace(/(<sup>)?(®|®)(<\/sup>)?/gi, '<sup>®</sup>'));
});
Я не рекомендую делать это на теле, как это сделал OP. Это может помешать встроенному JavaScript, в котором может быть символ.