     return self.substring(from: range)
   }()
 
-  private func utf16Range(from range: NSRange) -> Range<String.UTF16Index>? {
+  private func utf16Range(from range: NSRange) -> Range<String.UTF16View.Index>? {
 #if swift(>=4.0)
     return Range(range, in: string)
 #else

#endif
  }

  private func substring(from range: Range<String.UTF16Index>) -> String {
    return String(describing: string[range])
  }


    self.result = result
  }

  lazy var range: Range<String.UTF16View.Index> = {
    return self.utf16Range(from: self.result.range)!
  }()

