--- /dev/null
+-----------------------------------------------------------------------------
+RegexString.lhs
+
+A simple high-level interface to Regex
+
+(c) Simon Marlow 1997
+-----------------------------------------------------------------------------
+
+> module RegexString (Regex(..), mkRegex, matchRegex) where
+
+> import Regex
+> import PackedString
+> import Array
+> import GlaExts
+
+> type Regex = PatBuffer
+>
+> mkRegex :: String -> Regex
+> mkRegex s = unsafePerformPrimIO (
+> re_compile_pattern (packString s) False False)
+>
+> matchRegex :: Regex -> String -> Maybe [String]
+> matchRegex p s = unsafePerformPrimIO (
+> re_match p str 0 True >>= \m ->
+> case m of
+> Nothing -> return Nothing
+> Just m -> return (Just (matches m str))
+> )
+> where
+> str = packString s
+>
+> matches (REmatch arr _ _ _ _) s =
+> [ unpackPS (substrPS s beg (end-1)) |
+> index <- [1..], let (beg,end) = arr ! index ]