code: public AsciiString subSequence(int start, int end, boolean copy) {
          if (isOutOfBounds(start, end - start, length())) {
              throw new IndexOutOfBoundsException("expected: 0 <= start(" + start + ") <= end (" + end + ") <= length("
                              + length() + ')');
          }
  
          if (start == 0 && end == length()) {
              return this;
          }
  
          if (end == start) {
              return EMPTY_STRING;
          }
  
          return new AsciiString(value, start + offset, end - start, copy);
      }
docs: Either copy or share a subset of underlying sub-sequence of bytes.
  @param start the offset of the first character (inclusive).
  @param end The index to stop at (exclusive).
  @param copy If {@code true} then a copy of the underlying storage will be made.
  If {@code false} then the underlying storage will be shared.
  @return a new string containing the characters from start to the end of the string.
  @throws IndexOutOfBoundsException if {@code start < 0} or {@code start > length()}.