         of: aString,
         options: mask,
         range: _toNSRange(
-          searchRange ?? self.characters.startIndex..<self.characters.endIndex
+          searchRange ?? startIndex..<endIndex
         ),
         locale: locale
       )

  /// given options, using the specified locale, if any.
  public func range(
    of aString: String,
    options mask: CompareOptions = [],
    range searchRange: Range<Index>? = nil,
    locale: Locale? = nil
  ) -> Range<Index>? {

    return _ns.components(separatedBy: separator)
  }

  // - (NSArray *)componentsSeparatedByString:(NSString *)separator

  /// Returns an array containing substrings from the string that have been
