Deployment section clarification

The docs for circle.yml 1.0 are not clear about how the deployment section works. See the following:

Subsection names must be unique. Each subsection can list multiple branches, but at least one of these fields must be named branch. In instances of multiple branches, the first one that matches the branch being built is the one that is run.

I have some questions:

  • Can more than one subsection (staging|production) be run in response to one checkout?
  • Are subsections being evaluated in order? are branch patterns?
  • From further down the docs, why is the pattern to match all branches /.*?/ instead of /.*/ ?
  • Is the branch field actually required? Further down there is an example that just has tag

So, my guess at what you mean is below and I hope much more clear:

Subsection names must be unique. Each subsection must list at least one branch or tag. In the case of multiple subsections, the first one that matches the branch being built is the only one that is run.

Is that correct?