code: def _file_path(self, src_path, dest, regex):
          
          m = re.search(regex, src_path)
          if dest.endswith('/') or dest == '':
              dest += '{filename}'
          names = m.groupdict()
          if not names and m.groups():
              names = {'filename': m.groups()[-1]}
          for name, value in names.items():
              dest = dest.replace('{%s}' % name, value)
          # remove starting slash so path can't be absolute
          dest = dest.strip(' /')
          if not dest:
              progress_logger.error('destination path must not resolve to be null')
              raise GrablibError('bad path')
          new_path = self.download_root.joinpath(dest)
          new_path.relative_to(self.download_root)
          return new_path
docs: check src_path complies with regex and generate new filename