code: def glob_compile(pat):
      
  
      i, n = 0, len(pat)
      res = ''
      while i < n:
          c = pat[i]
          i = i + 1
          if c == '/' and len(pat) > (i + 2) and pat[i:(i + 3)] == '**/':
              # Special-case for "any number of sub-directories" operator since
              # may also expand to no entries:
              #  Otherwise `a/**/b` would expand to `a[/].*[/]b` which wouldn't
              #  match the immediate sub-directories of `a`, like `a/b`.
              i = i + 3
              res = res + '[/]([^/]*[/])*'
          elif c == '*':
              if len(pat) > i and pat[i] == '*':
                  i = i + 1
                  res = res + '.*'
              else:
                  res = res + '[^/]*'
          elif c == '?':
              res = res + '[^/]'
          elif c == '[':
              j = i
              if j < n and pat[j] == '!':
                  j = j + 1
              if j < n and pat[j] == ']':
                  j = j + 1
              while j < n and pat[j] != ']':
                  j = j + 1
              if j >= n:
                  res = res + '\\['
              else:
                  stuff = pat[i:j].replace('\\', '\\\\')
                  i = j + 1
                  if stuff[0] == '!':
                      stuff = '^' + stuff[1:]
                  elif stuff[0] == '^':
                      stuff = '\\' + stuff
                  res = '%s[%s]' % (res, stuff)
          else:
              res = res + re.escape(c)
      return re.compile('^' + res + '\Z(?ms)' + '$')
docs: Translate a shell glob PATTERN to a regular expression.
  
      This is almost entirely based on `fnmatch.translate` source-code from the
      python 3.5 standard-library.