code: def setup_regex(self):
          
          #Regex for extracting modules from the code
          self._RX_MODULE = r"(\n|^)\s*module\s+(?P<name>[a-z0-9_]+)(?P<contents>.+?)end\s*module"
          self.RE_MODULE = re.compile(self._RX_MODULE, re.I | re.DOTALL)
          self._RX_PROGRAM = r"(\n|^)\s*program\s+(?P<name>[a-z0-9_]+)(?P<contents>.+?)end\s*program"
          self.RE_PROGRAM = re.compile(self._RX_PROGRAM, re.I | re.DOTALL)
  
          #Regex for use statements in a module
          self._RX_USE = r"^\s*use\s+(?P<name>[^,]+?)(\s*,\s+only\s*:(?P<only>[A-Za-z0-9_\s,]+?))?$"
          self.RE_USE = re.compile(self._RX_USE, re.I | re.M)
          #Regex for finding if the module is private
          self._RX_PRIV = "private.+?(type|contains)"
          self.RE_PRIV = re.compile(self._RX_PRIV, re.DOTALL | re.I)
          #Regex for finding publcily labeled members declared using public keyword.
          self._RX_PUBLIC = r"\n\s*public\s+(?P<methods>[A-Za-z0-9_,\s&\n]+)"
          self.RE_PUBLIC = re.compile(self._RX_PUBLIC, re.I)
          #Regex for finding text before type or contains declarations that may contian members.
          self._RX_MEMBERS = "(?P<preamble>.+?)(\s+type[,\s]|contains)"
          self.RE_MEMBERS = re.compile(self._RX_MEMBERS, re.DOTALL | re.I)
  
          self._RX_PRECOMP = r"#endif"
          self.RE_PRECOMP = re.compile(self._RX_PRECOMP, re.I)
docs: Sets up compiled regex objects for parsing code elements.