--- File.fnmatch(pattern, path[, flags])   ruby 1.7 feature
--- File.fnmatch?(pattern, path[, flags])   ruby 1.7 feature

    ե̾ΥѥޥåԤޤ(fnmatch(3) [manual page])
    path  pattern ˥ޥåп֤ޤ

    pattern ˤϥ磻ɥɤȤ `*', `?', `[]' ѤǤ
    (Dir.glob Ȥϰä `{}'  `**/' ϻѤǤޤ)

        %w(foo foobar bar).each {|f|
          p File.fnmatch("foo*", f)
        }
        # => true
             true
             false

    flags ˰ʲ(File::Constants ⥸塼
    Ƥޤ)¤ǻꤹ뤳Ȥǥѥޥåưѹ
    ȤǤޤflags Υǥեͤ0(ե饰ʤ)Ǥ

    : FNM_NOESCAPE
      ʸ `\' ̤ʸȤߤʤޤ

        # ǥեȤǤ \ ȼǤդʸϤʸ˥ޥåޤ
        # Υե饰Ĥȡ\ ̤ʸȤưޤ
        p File.fnmatch('\a', 'a')                       # => true
        p File.fnmatch('\a', '\a', File::FNM_NOESCAPE)  # => true

        # Ԥ * ϡפƤΤ "*" ΤΤ˥ޥå
        # ޤ
        p File.fnmatch('\*', 'a')                       # => false
        p File.fnmatch('\*', '\a', File::FNM_NOESCAPE)  # => true

        # ñΤ \ ϡΥե饰̵ͭ˴ؤ餺 \ ˥ޥåޤ
        # (󥰥륯ʸǤ \\ ϡ\ Ǥ뤳Ȥ)
        p File.fnmatch('\\', '\\')                      # => true
        p File.fnmatch('\\', '\\', File::FNM_NOESCAPE)  # => true

    : FNM_PATHNAME
      磻ɥ `*', `?', `[]'  `/' ˥ޥåʤʤޤ
      ΥѥޥåˤϤΥե饰ѤƤޤ

        p File.fnmatch('*', '/', File::FNM_PATHNAME)   # => false
        p File.fnmatch('?', '/', File::FNM_PATHNAME)   # => false
        p File.fnmatch('[/]', '/', File::FNM_PATHNAME) # => false

    : FNM_CASEFOLD
      ե٥åȤ羮ʸ̤˥ѥޥåԤޤ

        p File.fnmatch('A', 'a', File::FNM_CASEFOLD)   # => true

    : FNM_DOTMATCH
      磻ɥ `*', `?', `[]' Ƭ `.' ˥ޥå褦ˤʤޤ

        p File.fnmatch('*', '.', File::FNM_DOTMATCH)           # => true
        p File.fnmatch('?', '.', File::FNM_DOTMATCH)           # => true
        p File.fnmatch('[.]', '.', File::FNM_DOTMATCH)         # => true
        p File.fnmatch('foo/*', 'foo/.', File::FNM_DOTMATCH)   # => true

