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 &AMP o &amp 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