Referències de caràcter en HTML5
Hi ha tres tipus de referències de caràcter en HTML, Named character references (p.ex. '), Decimal numeric character references (p.ex. ') i Hexadecimal numeric character references (p.ex. '). Es pot expressar qualsevol de les possibilitats amb la següent expressió regular:
&( names | #x?[0-9a-zA-Z]+; )
On names és alguna de les possibilitats del llistat de noms reservats. Interessant destacar que en aquest llistat es permeten casos com & o & sense punt i coma (;) final.
Les referències numèriques no permeten U+0000, U+000D, cap caràcter Unicode no definit ni cap caràcter de control excepte espais.
Una ampersand és ambigu i per tant prohibit si no coincideix amb cap dels anteriors casos i coincideix amb l'expressió regular:
&[0-9a-zA-Z]+;
Això deixa un seguit de casos com a ampersand legals tot i no ser referències de caràcter. Per exemple:
Alpha & Omega
Lorem ipsum dolor &<span>sit</span> amet.
(foo && bar)
http://example.org/?x=1&y=2