YARR currently ignores the ECMAScript Annex B section CharacterRangeOrUnion ( A, B ) (https://tc39.github.io/ecma262/#sec-runtime-semantics-characterrangeorunion-abstract-operation) for the case where Unicode is true. We always create a Union when A and/or B is a Character Set. The abstract operation CharacterRangeOrUnion takes two CharSet parameters A and B and performs the following steps: If Unicode is false, then If A does not contain exactly one character or B does not contain exactly one character, then Let C be the CharSet containing the single character - U+002D (HYPHEN-MINUS). Return the union of CharSets A, B and C. Return CharacterRange(A, B).