local our %known = map { $_ => 1 } qw( eacute Eacute ecirc Ecirc ... ); s/ & (?! (?: \# (?: x[\da-f]+ | \d+ ) | ([a-z]+) (?(?{ !$known{$1} }) (?!) ) ) ; ) /&/xi