I find the punctuation confusing.  The semicolon is a stronger separator than comma, so I'm looking at
* either: -f (a.k.a. --full)
* or: -p (a.k.a. --plain), a pattern, then a list of directories.
If you actually mean <code>
usage: [ -f | --full | -p | --plain ] pattern directories...
</code> then I think this style of BNF-inspired usage notation is probably clearer than English !