private void matchComplexRangeRight(int start2, int end2, int start11, int end11, int start21, int end21) {
      CharSequence sequence11 = myText1.subSequence(start11, end11);
      CharSequence sequence12 = myText1.subSequence(start21, end21);
      CharSequence sequence2 = myText2.subSequence(start2, end2);

      Couple<FairDiffIterable> changes = comparePunctuation2Side(sequence2, sequence11, sequence12, myIndicator);

      // Mirrored ch.*1 and ch.*2 as we use "compare2Side" that works with 2 right side, while we have 2 left here
      for (Range ch : changes.first.iterateUnchanged()) {
        myBuilder.markEqual(start11 + ch.start2, start2 + ch.start1, start11 + ch.end2, start2 + ch.end1);
      }
      for (Range ch : changes.second.iterateUnchanged()) {
        myBuilder.markEqual(start21 + ch.start2, start2 + ch.start1, start21 + ch.end2, start2 + ch.end1);
      }
    }
private void matchComplexRangeRight(int start2, int end2, int start11, int end11, int start21, int end21)