In reply to Have_A_Doubt:
b[->0] is equivalent to
!b[*0:$] ##1 b[*0] // expanding to
!b[*0] ##1 b[*0] or // same as b[*0]
!b[*1] ##1 b[*0] or ... // same as !b[*1] ##1 empty_match
// Same as
b[*0] or !b[*1] ##1 empty_match or !b[*2] ##1 empty_match
Thus, b[->0] always ends with an empty_match, which is a fail
I believe that optimization in the tool determines that there is no need to test all the other ORed threads because ALL of them end with an empty match
(2) - EDA Playground // code
EPWave Waveform Viewer // wave
Ben Cohen
Ben@systemverilog.us
Link to the list of papers and books that I wrote, many are now donated.