Since the ranges for the "high surrogates" (), "low surrogates" (), and valid BMP characters (0x0000–0xD7FF, 0xE000–0xFFFF) are disjoint, it is not possible for a surrogate to match a BMP character, or for two adjacent "code units" to look like a legal "surrogate pair". This simplifies searches a great deal. It also means that UTF-16 is "self-synchronizing" on 16-bit words: whether a code unit starts a character can be determined without examining earlier code units (i.e. the type of "code unit" can be determined by the ranges of values in which it falls). UTF-8 shares these advantages, but many earlier multi-byte encoding schemes (such as Shift JIS and other Asian multi-byte encodings) did not allow unambiguous searching and could only be synchronized by re-parsing from the start of the string (UTF-16 is not self-synchronizing if one byte is lost or if traversal starts at a random byte).