What's event region of @ in System Verilog?

In reply to dave_59:

Hi Dave,

Thank you for explanation.

For @, you said it executes in active region. Then it suspends wait for @(posedge a).
If active region queue is not empty, how can it schedules inactive region?

In order to understand this, could you please explain how those events sit?

module tb;
  logic a;
  
  //state1
  initial a<=0;

  //state2
  initial begin
    @(a) begin
      a<=1;
      $display(a);
  end

  //state3
  initial $monitor("a:%0b",a)
endmodule

Based on your explanation,
state1 sits in NBA region
state2 sits in active region, @ suspend the thread. What region do a<=1 and $display sit? Still active region or NBA region?
state3 sits in postpone region.

Is this correct?