anchor.diff:          ++startIndex;  // empty match, advance and restart
           continue;
         }
  -      result.add(this.substring(previousIndex, match.start));
  +      result.add(this._substringUnchecked(previousIndex, match.start));
         startIndex = previousIndex = endIndex;
       }
       return result;
  
positive.code:   }
  
    bool operator ==(Object other) {
      if (this === other) {
        return true;
      }
      if ((other is !String) ||
  
negative.code:     int previousIndex = 0;
      while (true) {
        if (startIndex == length || !iterator.hasNext) {
          result.add(this._substringUnchecked(previousIndex, length));
          break;
        }
        Match match = iterator.next();
        if (match.start == length) {
          result.add(this._substringUnchecked(previousIndex, length));
          break;
        }
        int endIndex = match.end;
  