Content expression for repeating blocks

How would I express a content expression that allows a repeating block of:

  • a heading (1, 2, 3 or 4) which is optional, followed by
  • a paragraph or
  • a bullet list

Right now this is what I have:

(heading? | (paragraph|bulletList))*

However this does not allow me to enter more than one Heading (i.e. the first one).

What you describe sounds more like (heading? (paragraph | bulletList))*. In any case, repeating expressions that match nothing are probably something you don’t want. What is the reason you’re not just doing (heading | paragraph | bulletList)+?