code: def glob_wildcards(pattern: str, files: Optional[List[str]] = None
                    ) -> Dict[str, Union[List[Any], List[str]]]:
      
      pattern = os.path.normpath(pattern)
      if sys.platform == 'win32':
          # we perform path matching with / slash only
          pattern = pattern.replace('\\', '/')
      first_wildcard = re.search("{[^{]", pattern)
      dirname = os.path.dirname(pattern[:first_wildcard.start()]
                               ) if first_wildcard else os.path.dirname(pattern)
      if not dirname:
          dirname = "."
  
      names = [match.group('name') for match in SOS_WILDCARD.finditer(pattern)]
      res = {x: [] for x in names}
      pattern = re.compile(regex(pattern))
  
      if files is None:
          files = ((os.path.join(dirpath, f) if dirpath != "." else f)
                   for dirpath, dirnames, filenames in os.walk(dirname)
                   for f in chain(filenames, dirnames))
  
      for f in files:
          # we perform path matching with only / slash
          match = re.match(pattern, str(f).replace('\\', '/'))
          if match:
              for name, value in match.groupdict().items():
                  res[name].append(value)
      return res
docs: Glob the values of the wildcards by matching the given pattern to the filesystem.
      Returns a named tuple with a list of values for each wildcard.