code: Rule BracketedVoice() {
  		return Sequence('[', ZeroOrMore(WSP()),
  				FirstOf(SingleVoice(), BracedVoice(), ParenVoice()),
  				OneOrMore(Sequence(BarStaves(),
  									FirstOf(SingleVoice(), BracedVoice(), ParenVoice()))),
  				ZeroOrMore(WSP()),
  				']')
  			.label(BracketedVoice);
  	}
docs: bracketed-voice ::= "[" *WSP (single-voice / braced-voice / paren-voice)
  1*(bar-staves (single-voice / braced-voice / paren-voice)) *WSP "]"
  <p>
  staves joined by bracket