diff --git a/hxt-regex-xmlschema.cabal b/hxt-regex-xmlschema.cabal
--- a/hxt-regex-xmlschema.cabal
+++ b/hxt-regex-xmlschema.cabal
@@ -1,5 +1,5 @@
 Name:                hxt-regex-xmlschema
-Version:             9.0.0
+Version:             9.0.1
 Synopsis:            A regular expression library for W3C XML Schema regular expressions
 Description:         This library supports full W3C XML Schema regular expressions
                      inclusive all Unicode character sets and blocks.
@@ -11,7 +11,7 @@
                      The library can be used for constricting lightweight scanners and tokenizers.
                      It is a standalone library, no external regex libraries are used.
                      This package is a substitute for the old regex-xmlschema package.
-License:             OtherLicense
+License:             MIT
 License-file:        LICENSE
 Author:              Uwe Schmidt
 Maintainer:          Uwe Schmidt <uwe@fh-wedel.de>
@@ -19,7 +19,6 @@
 Stability:           stable
 Category:            Text
 Homepage:            http://www.haskell.org/haskellwiki/Regular_expressions_for_XML_Schema
-Copyright:           Copyright (c) 2010 Uwe Schmidt
 Build-type:          Simple
 Cabal-version:       >=1.6
 
@@ -39,10 +38,13 @@
     Text.Regex.XMLSchema.String.RegexParser
     Text.Regex.XMLSchema.String.Regex
     Text.Regex.XMLSchema.String
+    Text.Regex.Glob.String.RegexParser
+    Text.Regex.Glob.String
 
   hs-source-dirs: src
 
   ghc-options: -Wall
+  ghc-prof-options: -auto-all -caf-all
 
   build-depends:     base               >= 4   && < 5,
                      haskell98          >= 1   && < 2,
diff --git a/src/Text/Regex/Glob/String.hs b/src/Text/Regex/Glob/String.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/Regex/Glob/String.hs
@@ -0,0 +1,32 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.Regex.Glob.String
+   Copyright  : Copyright (C) 2011- Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt <uwe@fh-wedel.de>
+   Stability  : stable
+   Portability: portable
+
+   csh glob style pattern matcher
+-}
+
+-- ------------------------------------------------------------
+
+module Text.Regex.Glob.String
+    ( Regex
+    , match
+    , parseRegex
+    )
+where
+
+import Text.Regex.XMLSchema.String.Regex
+import Text.Regex.Glob.String.RegexParser
+
+-- ------------------------------------------------------------
+
+match           :: String -> String -> Bool
+match           = matchWithRegex . parseRegex
+
+-- ------------------------------------------------------------
diff --git a/src/Text/Regex/Glob/String/RegexParser.hs b/src/Text/Regex/Glob/String/RegexParser.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/Regex/Glob/String/RegexParser.hs
@@ -0,0 +1,79 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.Regex.Glob.String.RegexParser
+   Copyright  : Copyright (C) 2010- Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   csh style Glob Pattern Parser for Regular Expressions
+-}
+
+-- ------------------------------------------------------------
+
+module Text.Regex.Glob.String.RegexParser
+    ( parseRegex
+    )
+where
+
+import Text.ParserCombinators.Parsec
+
+import Text.Regex.XMLSchema.String.Regex
+
+
+-- ------------------------------------------------------------
+
+-- | parse a glob pattern
+
+parseRegex :: String -> Regex
+parseRegex
+    = either (mkZero . ("syntax error: " ++) . show) id
+      .
+      parse ( do
+              r <- pattern
+              eof
+              return r
+            ) ""
+
+-- ------------------------------------------------------------
+
+pattern  :: Parser Regex
+pattern
+    = many part >>= return . mkSeqs
+
+part :: Parser Regex
+part
+    = ( many1 (noneOf "\\?*[{") >>= return . mkWord )
+      <|>
+      ( char '?' >> return mkDot )
+      <|>
+      ( char '*' >> return mkAll )
+      <|>
+      ( between (char '{') (char '}') wordList )
+      <|>
+      ( between (char '[') (char ']') charSet )
+      <|>
+      ( char '\\' >> anyChar >>= return . mkSym1 )
+
+wordList :: Parser Regex
+wordList
+    = sepBy (many1 (noneOf ",}")) (char ',') >>= return . foldr mkAlt (mkZero "") . map mkWord
+
+charSet :: Parser Regex
+charSet
+    = ( do p1 <- charSet' anyChar
+           ps <- many $ charSet' (noneOf "]")
+           return $ foldr mkAlt (mkZero "") (p1 : ps)
+      )
+    where
+      charSet' cp
+          = do c1 <- cp
+               c2 <- rest c1
+               return $ mkSymRng c1 c2
+      rest c1
+          = option c1 (char '-' >> anyChar)
+
+-- ------------------------------------------------------------
