Difference in output using 'within' V/S 'intersect' operator

In reply to ben@SystemVerilog.us:

Ben ,
A final question.

For an intersect operator to pass,LHS sequence must be of the same length as the RHS sequence

Using equivalent ‘or’ sequences for LHS, I am trying to understand what causes LHS sequence to be termed as ‘it ends’ at t:125 ?

In the stimulus :

  1. !$rose(gnt) is true from t:35 to t:75, i.e !$rose(gnt)[*5] is a match
  2. Next clock at time:85 $rose(gnt) is true i.e !$rose(gnt)[*5] ##1 $rose(gnt) is a match
  3. !$rose(gnt) is true from t:95 to t:115, i.e !$rose(gnt)[*5] ##1 $rose(gnt) ##1 !$rose(gnt)[*3] is a match
  4. At time:125, $rose(gnt) is true for 2nd time

  //  In  the  equivalent 'or' expressions for LHS sequence :
 ( !$rose(gnt)[*5] ##1 $rose(gnt) ##1 !$rose(gnt)[*0] ) or  // 1st seq match but NO INTERSECT yet
 ( !$rose(gnt)[*5] ##1 $rose(gnt) ##1 !$rose(gnt)[*1] ) or  // 2nd seq match but NO INTERSECT at time:95
 ( !$rose(gnt)[*5] ##1 $rose(gnt) ##1 !$rose(gnt)[*2] ) or  // 3rd seq match but NO INTERSECT at time:105
 ( !$rose(gnt)[*5] ##1 $rose(gnt) ##1 !$rose(gnt)[*3] ) or  // 4th seq match but NO INTERSECT at time:115

  At time:125 when 2nd $rose(gnt) is true :
 ( !$rose(gnt)[*5] ##1 $rose(gnt) ##1 !$rose(gnt)[*4] ) or  // 5th seq doesn't match at time:125

 // Correspondingly all remaining sequences (6th to Nth) don't match due to 2nd $rose(gnt)

Due to 2nd $rose(gnt) at time:125, 5th to Nth sequences don’t match : !$rose(gnt)[*5] ##1 $rose(gnt) ##1 !$rose(gnt)[*4:$])

Essentially 1st to 4th sequences matched but there was No intersect, remaining 5th to Nth sequences don’t match due to 2nd $rose(gnt).

So how is it interpreted as LHS sequence ends at time:125 ?