   internal func _measureExtendedGraphemeClusterForward(
     from start: UnicodeScalarView.Index
   ) -> Int {
-    var start = start
     let end = unicodeScalars.endIndex
     if start == end {
       return 0
     }
+
+    // Our relative position (offset). If our _core is not a substring, this is
+    // the same as start._position.
+    let relativeOffset = start._position - _coreOffset
 
     // Grapheme breaking is much simpler if known ASCII
     if _core.isASCII {
       _onFastPath() // Please aggressively inline
       let asciiBuffer = _core.asciiBuffer._unsafelyUnwrappedUnchecked
-      let pos = start._position - _coreOffset
 
       // With the exception of CR-LF, ASCII graphemes are single-scalar. Check
       // for that one exception.
       if _slowPath(
-        asciiBuffer[pos] == _CR &&
-        pos+1 < asciiBuffer.endIndex &&
-        asciiBuffer[pos+1] == _LF
+        asciiBuffer[relativeOffset] == _CR &&
+        relativeOffset+1 < asciiBuffer.endIndex &&
+        asciiBuffer[relativeOffset+1] == _LF
       ) {
         return 2
       }
 
       return 1
+    } else {
+      // TODO: Check for (potentially non-contiguous) ASCII NSStrings,
+      // especially small tagged pointers.
     }
     
     let startIndexUTF16 = start._position

      return 0
    }

    // Grapheme breaking is much simpler if known ASCII
    if _core.isASCII {
      _onFastPath() // Please aggressively inline
      let asciiBuffer = _core.asciiBuffer._unsafelyUnwrappedUnchecked
      let pos = end._position - _coreOffset - 1
      _sanityCheck(
        pos >= asciiBuffer.startIndex,
        "should of been caught in earlier start-of-scalars check")

      // With the exception of CR-LF, ASCII graphemes are single-scalar. Check
      // for that one exception.
      if _slowPath(
        asciiBuffer[pos] == _LF &&
        pos-1 >= asciiBuffer.startIndex &&
        asciiBuffer[pos-1] == _CR
      ) {
        return 2
      }

internal let _CR: UInt8 = 0x0d
internal let _LF: UInt8 = 0x0a

import SwiftShims

extension String {
  /// A view of a string's contents as a collection of characters.
  ///
