Solving Complex User's Assertion question

I started going through @ben2 's paper on ‘Solving Complex Users’ Assertion. Is there a good online source to understand sequences? I am trying to understand how to read the following sequence. Can someone explain in simple terms what is the below sequence?

sequence dynamic_repeat(q_s, count);
   int v=count;
   (1, v=count) ##0 first_match((q_s, v=v-1'b1) [*1:$] ##0 v<=0);
endsequence

[quote]I started going through @ben2 's paper on ‘Solving Complex Users’ Assertion.
// Is there a good online source to understand sequences?
[/quote]
//[Ben] This paper “Understanding the SVA Engine Using the Fork-Join Model”
// addresses important concepts about attempts and threads. Emphasizes the total independence of attempts
// Verification Horizons
// 1800 provides some explanations too.
// Of course, textbooks also explain the application of sequences thru complete examples.
// Feel free to checkout my book and papers
/* SystemVerilog Assertions Handbook Revised 4 th edition 2023: … for Dynamic and Formal
https://www.amazon.com/dp/B0CK37KXMH ebook
https://www.amazon.com/dp/B0C6W4BF1D paper
https://systemverilog.us/vf/Cohen_Links_to_papers_books.pdf */

// I am trying to understand how to read the following sequence.
// Can someone explain in simple terms what is the below sequence?
// SVA: Package for dynamic and range delays and repeats
// Application: $rose(a) |-> sq_rpt_simple_count(sq_1, d1)

int count=3;
sequence dynamic_repeat(q_s, count);
   int v=count;
   (1, v=count) ##0 first_match((q_s, v=v-1'b1) [*1:$] ##0 v<=0);
endsequence

// when the sequence is called, the 
  (1, v=count)  // saves the value of count into the sequence local variable "v".
  // 1800 defines, among other things, a sequence as 
   (sequence_expr {, sequence_match_item})  [sequence_abbrev]   
  // it defines a sequence_match_item  as 
   operator_assignment | inc_or_dec_expression | subroutine_call 
  // example: 
  bit w; 
  function automatic void f(bit a); $display("%t $sampled w=", $realtime, a);endfunction
  sequence q; (w, f(w))[*2]; endsequence
  // back to the sequence dynamic_repeat(q_s, count);
  ##0 first_match((q_s, v=v-1'b1) [*1:$] ##0 v<=0);
  // in the same cycle, you evaluate the sequence "q_s", and if it matches, 
  //   you decrement the local valiable v.
  // You repeat this process (evaluation and decrement)until v<=0. 
  // The first_match is needed because this sequence may be used as an antecedant, 
  // and in an antecedant, all thereads of the antecedant must be test