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