anchor.diff:  
         FIND ALL OCCURRENCES OF '<'  IN lv_line MATCH COUNT rs_result-openings.
         FIND ALL OCCURRENCES OF '</' IN lv_line MATCH COUNT rs_result-closings.
  -      FIND ALL OCCURRENCES OF REGEX go_single_tags_re IN lv_line MATCH COUNT rs_result-singles.
  +      IF rs_result-closings <> rs_result-openings.
  +* if everything is closings, there are no single tags
  +        FIND ALL OCCURRENCES OF REGEX go_single_tags_re IN lv_line MATCH COUNT rs_result-singles.
  +      ENDIF.
         rs_result-openings = rs_result-openings - rs_result-closings - rs_result-singles.
   
       ENDIF.
  
positive.code:         OR ls_study-curly_close = abap_true
          OR ls_study-tag_close = abap_true )
          AND cs_context-indent > 0.
        lv_x_str = repeat( val = ` `
                           occ = ( cs_context-indent - 1 ) * c_indent_size ).
        cv_line  = lv_x_str && cv_line.
      ELSE.
        cv_line = cs_context-indent_str && cv_line.
      ENDIF.
  
negative.code:       ELSEIF cs_context-indent > 0. " AND ls_study-openings < ls_study-closings
          cs_context-indent = cs_context-indent - 1.
        ENDIF.
        lv_spaces = cs_context-indent * c_indent_size.
        cs_context-indent_str = gv_spaces(lv_spaces).
      ENDIF.
  
    ENDMETHOD.
  