title: xml .dtd file. Confusion about parenthesis precedence
body: <p>So - I have this big xml node definition in .dtd file:</p>
  
  <pre><code>&lt;!ELEMENT def ( node1?, 
                  ( node2?, 
                    node3*, 
                    ( ( node4?, 
                        (node5 | node6)?, 
                        node7?, node8?, node9?, 
                        node10*, node11?, node12* )*, 
                      node13, 
                      ( node14, node15?, node16?, 
                        node17*, node18 )?, 
                      node19*, node20? )+ )) &gt;
  </code></pre>
  
  <p>I'm very confused about these parentheses and which rules would apply:   </p>
  
  <p>Question 1: </p>
  
  <p>Can node7 show up <strong>0 or 1 times</strong> because of the question mark, or <strong>0 or more times</strong> because of the star sign after the enclosing parenthesis?</p>
  
  <p>What would win - quantifiers right after node definition: node3*, node3+, node3? or those quantifiers that come after grouping parenthesis?</p>
  
  <p>Question 2:   </p>
  
  <p>The parenthesis before node2? seems to be completely unnecessary - is that correct?</p>