code: def get_author_affiliation_numeration_str(punct=None):
      
  
      # FIXME cater for start or end numeration (ie two puncs)
  
      # Number to look for, either general or specific
      re_number = r'(?:\d\d?)'
      re_chained_numbers = r"(?:(?:[,;]\s*%s\.?\s*))*" % re_number
      # Punctuation surrounding the number, either general or specific again
      if punct is None:
          re_punct = r"(?:[\{\(\[]?)"
      else:
          re_punct = re.escape(punct)
  
      # Generic number finder (MUST NOT INCLUDE NAMED GROUPS!!!)
      numeration_str = r"""
      (?:\s*(%(punct)s)\s*            ## Left numeration punctuation
          (%(num)s\s*                 ## Core numeration item, either specific or generic
              %(num_chain)s           ## Extra numeration, either generic or empty
          )
          (?:(%(punct)s))       ## Right numeration punctuation
      )""" % {'num': re_number,
              'num_chain': re_chained_numbers,
              'punct': re_punct}
      return numeration_str
docs: The numeration which can be applied to author names. Numeration
      is sometimes found next to authors of papers.
      @return: (string), which can be compiled into a regex; identifies
      numeration next to an author name.