docs: def app_main(self, experiment=None, last=False, new=False,
                   verbose=False, verbosity_level=None, no_modification=False,
                   match=False):
          """
          The main function for parsing global arguments
  
          Parameters
          ----------
          experiment: str
              The id of the experiment to use
          last: bool
              If True, the last experiment is used
          new: bool
              If True, a new experiment is created
          verbose: bool
              Increase the verbosity level to DEBUG. See also `verbosity_level`
              for a more specific determination of the verbosity
          verbosity_level: str or int
              The verbosity level to use. Either one of ``'DEBUG', 'INFO',
              'WARNING', 'ERROR'`` or the corresponding integer (see pythons
              logging module)
          no_modification: bool
              If True/set, no modifications in the configuration files will be
              done
          match: bool
              If True/set, interprete `experiment` as a regular expression
              (regex) und use the matching experiment"""
          if match:
              patt = re.compile(experiment)
              matches = list(filter(patt.search, self.config.experiments))
              if len(matches) > 1:
                  raise ValueError("Found multiple matches for %s: %s" % (
                      experiment, matches))
              elif len(matches) == 0:
                  raise ValueError("No experiment matches %s" % experiment)
              experiment = matches[0]
          if last and self.config.experiments:
              self.experiment = None
          elif new and self.config.experiments:
              try:
                  self.experiment = utils.get_next_name(self.experiment)
              except ValueError:
                  raise ValueError(
                      "Could not estimate an experiment id! Please use the "
                      "experiment argument to provide an id.")
          else:
              self._experiment = experiment
          if verbose:
              verbose = logging.DEBUG
          elif verbosity_level:
              if verbosity_level in ['DEBUG', 'INFO', 'WARNING', 'ERROR']:
                  verbose = getattr(logging, verbosity_level)
              else:
                  verbose = int(verbosity_level)
          if verbose:
              logging.getLogger(
                  utils.get_toplevel_module(inspect.getmodule(self))).setLevel(
                      verbose)
              self.logger.setLevel(verbose)
          self.no_modification = no_modification