How to use first_match in assertion

In reply to ben@SystemVerilog.us:

Hi Ben,
for using first_match (rose(a) ##[2:] b)|=> c

(($rose(a) ##2 b) |=> c) // thread 1 property
(($rose(a) ##3 b) |=> c) // thread 2 property

(($rose(a) ##n b)|=> c) // thread n

Do you mean that one of N threads pass, then first_match (rose(a) ##[2:] b)|=> c will pass?

For using first_match, if $rose(a) ##2 b, $rose(a) ##3 b,$rose(a) ##4 b are true, which one will be used to attempt?
Thank you