'TRADE;' => "\xE2\x84\xA2",
'trade;' => "\xE2\x84\xA2",
'uArr;' => "\xE2\x87\x91",
'uarr;' => "\xE2\x86\x91",
'Upsilon;' => "\xCE\xA5",
'upsilon;' => "\xCF\x85",
'weierp;' => "\xE2\x84\x98",
'zwj;' => "\xE2\x80\x8D",
'zwnj;' => "\xE2\x80\x8C"
for ($i = 0, $match = null; $i < 9 && $this->consume() !== false; $i++) {
// Cast for PHPStan on PHP < 8.0: We consumed as per the loop condition,
// so `$this->consumed` is non-empty and the substr offset is valid.
$consumed = (string) substr($this->consumed, 1);
if (isset($entities[$consumed])) {
$this->data = substr_replace($this->data, $entities[$match], $this->position - strlen($consumed) - 1, strlen($match) + 1);
$this->position += strlen($entities[$match]) - strlen($consumed) - 1;