code: def parse_hotkey(text):
      
  
      ret_val = [text, None, None]  # Default return values
      if text is None:
          return ret_val
  
      # Single character, remain visible
      res = re.search('(?<=\[).(?=\])', text)
      if res:
          start = res.start(0)
          end = res.end(0)
          caption = text[:start - 1] + text[start:end] + text[end + 1:]
          ret_val = [caption, text[start:end], start - 1]
  
      # Single character, hide it
      res = re.search('(?<=\[\[).(?=\]\])', text)
      if res:
          start = res.start(0)
          end = res.end(0)
          caption = text[:start - 2] + text[end + 2:]
          ret_val = [caption, text[start:end], None]
  
      # a Keysym.  Always hide it
      res = re.search('(?<=\[\<).+(?=\>\])', text)
      if res:
          start = res.start(0)
          end = res.end(0)
          caption = text[:start - 2] + text[end + 2:]
          ret_val = [caption, '<{}>'.format(text[start:end]), None]
  
      return ret_val
docs: Extract a desired hotkey from the text.  The format to enclose
      the hotkey in square braces
      as in Button_[1] which would assign the keyboard key 1 to that button.
        The one will be included in the
      button text.  To hide they key, use double square braces as in:  Ex[[qq]]
      it  , which would assign
      the q key to the Exit button. Special keys such as <Enter> may also be
      used:  Move [<left>]  for a full
      list of special keys, see this reference: http://infohost.nmt.edu/tcc/help/
      pubs/tkinter/web/key-names.html
      :param text:
      :return: list containing cleaned text, hotkey, and hotkey position within
      cleaned text.