Regarding 'followed by' property #=#

In reply to ben@SystemVerilog.us:

The followed-by operators #-# and #=# concatenate a sequence and a property.

I was trying to understand the meaning/interpretation of your above quote.
One application I could think of is that property is illegal in RHS of ‘##’ ( clock delay ) expression


  property p1;
    d ##1 e ;  
  endproperty    
  property prop;
    @(posedge clk) a |=> (b ##1 c) ##0 p1 ; // .. ##0 p1 / .. ##1 p1 are both Illegal
  endproperty  
  assert property( prop );

whereas if I were to write ::


  property p1;
    d ##1 e ;  
  endproperty    
  property prop;
    @(posedge clk) a |=> (b ##1 c) #-# p1 ; // .. #-# p1 / .. #=# p1 are both legal
  endproperty  
  assert property( prop );

So the clock delay ‘##’ property restriction can be bypassed using ‘followed_by’ property.
However for ##2/##3/## N property, I would need to split it to ##( N-1) 1 #=# property / ##N 1 #-# property

[Q1] Is there anything else might be missing out on (from your above quote) ?


LRM 16.12.9 :: A followed-by operator is especially convenient for specifying a cover property directive over a sequence followed by a property.

[Q2] Could you elaborate on this please ?