code: def setup_regex(self):
          
          #Regex for grabbing out valid XML tags that represent known docstrings that we can work with.
          self.keywords = [ "summary", "usage", "errors", "member", "group", "local", 
                            "comments", "parameter" ]
          #Regex for extracting the contents of docstrings minus the !! and any leading spaces.
          self._RX_DOCS = "^\s*!!(?P<docstring>.+?)$"
          self.RE_DOCS = re.compile(self._RX_DOCS, re.M)
          #Regex for handling cross references in the documentation
          self._RX_REFS = r"@CREF\[(?P<reference>[^\]]+)\]"
          self.RE_REFS = re.compile(self._RX_REFS)
          #Regex to match first lines of declarations for code elements that can be
          #decorated by docstrings.
          self._RX_DECOR = (r"((?P<type>character|real|type|logical|integer|complex)?"
                            r"(?P<kind>\([a-z0-9_]+\))?)?(,?(?P<modifiers>[^\n]+?))?"
                            r"\s*(?P<codetype>subroutine|function|type|module|interface)\s+(?P<name>[^(]+)")
          self.RE_DECOR = re.compile(self._RX_DECOR, re.I)
          #Regex for getting the docstrings decorating one or more modules in a code file,
          #Since they aren't contained inside any other code element, we can't just use
          #the normal docblocks routines.
          self._RX_MODDOCS = (r"^(?P<docstring>\s*!!.+?)\n\s*module\s+(?P<name>[A-Za-z0-9_]+)"
                              ".+?end\s+module(\s+(?P=name))?")
          self.RE_MODDOCS = re.compile(self._RX_MODDOCS, re.DOTALL | re.I)
docs: Sets up the patterns and regex objects for parsing the docstrings.