Hi Nicolas,
Thanks you for your feedback and clarifications. They were most helpful. Thomas, I've also made a few tweaks based on your reply. I've revised the draft in light of your comments, see below. Citations follow the pattern #+begin_example [cite CITESTYLE: GLOBALPREFIX KEYCITES GLOBALSUFFIX] #+end_example where "cite" and =CITESTYLE=, =KEYCITES= and =GLOBALSUFFIX= are /not/ separated by whitespace. Whitespace after the leading colon or before the closing square bracket is not significant. All other whitespace is significant. The only mandatory component, =KEYCITES= consists of one or more instances of the following pattern, separated by semicolons, #+begin_example KEYPREFIX @KEY KEYSUFFIX #+end_example where =KEYPREFIX=, =@KEY=, and =KEYSUFFIX= are /not/ separated by whitespace. =KEY= can be made of any word-constituent character, =-=, =.=, =:=, =?=, =!=, =`=, ='=, =/=, =*=, =@=, =+=, =|=, =(=, =)=, ={=, =}=, =<=, =>=, =&=, =_=, =^=, =$=, =#=, =%=, or =~=. =KEYPREFIX= and =KEYSUFFIX= are optional and can contain any characters other than a semicolon (=;=), so long as square brackets are balanced. =KEYPREFIX= cannot contain any subsequence that forms a =KEY=. Hence, a minimal citation is formed by the pattern ~[cite:@KEY]~. =CITESTYLE= consists of a main =STYLE= and optionally a =VARIANT=. Both the =STYLE= and =VARIANT= are prefixed by a forwards slash. #+begin_example /STYLE/VARIANT #+end_example =STYLE= and =VARIANT= can be made of any alphanumeric character, =_=, or =-=. Additionally, =VARIANT= can itself contain forward slashes (=/=) . =GLOBALPREFIX= and =GLOBALSUFFIX= can contain the same characters as =KEYPREFIX= and =KEYSUFFIX=. In the same manner as instances of the =KEYCITES= pattern, =KEYCITES=, =GLOBALPREFIX=, and =GLOBALSUFFIX= must be separated by semicolons. -- Timothy