code: public UnicodeSet retain(int start, int end) {
          checkFrozen();
          if (start < MIN_VALUE || start > MAX_VALUE) {
              throw new IllegalArgumentException("Invalid code point U+" + Utility.hex(start, 6));
          }
          if (end < MIN_VALUE || end > MAX_VALUE) {
              throw new IllegalArgumentException("Invalid code point U+" + Utility.hex(end, 6));
          }
          if (start <= end) {
              retain(range(start, end), 2, 0);
          } else {
              clear();
          }
          return this;
      }
docs: Retain only the elements in this set that are contained in the
  specified range.  If <code>end &gt; start</code> then an empty range is
  retained, leaving the set empty.
  
  @param start first character, inclusive, of range to be retained
  to this set.
  @param end last character, inclusive, of range to be retained
  to this set.