Using sequence as event contol

In reply to MICRO_91:

In reply to ben@SystemVerilog.us:
Ben,
As per our discussion a few months ago, we both concluded that a void function/task called as part of sequence_match_item executes in Reactive region similar to action block.

NO, that is only true for action blocks.
LRM Section 16.11 says
All subroutine calls attached to a sequence are executed at every end point of the sequence. For each end point, the attached calls are executed in the order they appear in the list.
[Ben] Moving into another topic
Assertion evaluation does not wait on or receive data back from any attached subroutine.
The subroutines are scheduled in theReactive region,like an action block.

[Ben] thus, " … ##0 (1, data = len , Length( data ), which causes the variable length to be modified, does not affect the assertion evaluation.
length is modified in the Observed region.

A side comment, module variables modified in an assertion should be used only for support logic. A user should be concerned with these timing regions/
Ben