docs: def extract_pattern(pattern: str, ifiles: List[str]) -> Dict[str, any]:
      '''This function match pattern to a list of input files, extract and return
      pieces of filenames as a list of variables with keys defined by pattern.'''
      res = glob_wildcards(pattern, [])
      for ifile in ifiles:
          matched = glob_wildcards(pattern, [ifile])
          for key in matched.keys():
              if not matched[key]:
                  #env.logger.warning('Filename {} does not match pattern {}. None returned.'.format(ifile, pattern))
                  res[key].append(None)
              else:
                  res[key].extend(matched[key])
      return res