diff --git a/Hidden/ParseRegexStr.hs b/Hidden/ParseRegexStr.hs
--- a/Hidden/ParseRegexStr.hs
+++ b/Hidden/ParseRegexStr.hs
@@ -16,7 +16,7 @@
 import Hidden.ParseLib( runParse, spot, token, mplus, mzero, tokens,
                         list, greedyList, optional, endOfInput )
 import Control.Monad.State( liftM )
-import Hidden.Tools		( isSymbol, (|||) )
+import Hidden.Tools		( isSymbol, (|||), isBit7On )
 import Data.Char		( isAlphaNum, isAlpha, isDigit, isSpace,
                                   toUpper, toLower )
 import Hidden.SrcRegActList
@@ -65,7 +65,8 @@
     `mplus`
     do { token '\\'; c <- spot isSymbol; return $ Select (==c) }
     `mplus`
-    do { token '\\'; d1 <- spot isDigit; d2 <- greedyList $ spot isDigit;
+    do { token '\\'; optional $ token '{'; d1 <- spot isDigit;
+         d2 <- greedyList $ spot isDigit; optional $ token '}';
          return $ BackReference $ read $ d1:d2 }
     `mplus`
     do { token '['; isNotNot <- optional (token '^') >>= return . null;
@@ -97,6 +98,8 @@
     parseBackSlashes backSlashesList
     `mplus`
     parseParenses parensesList
+    `mplus`
+    ( spot isBit7On >>= return . Select . (==) )
     `mplus`
     do { tokens "(?#"; c <- list $ spot (/=')'); token ')'; return $ Comment c }
 
diff --git a/Hidden/SrcRegActList.hs b/Hidden/SrcRegActList.hs
--- a/Hidden/SrcRegActList.hs
+++ b/Hidden/SrcRegActList.hs
@@ -34,6 +34,8 @@
  , ('^', RegexOr [BeginningOfInput] [Still [Backword [Select (=='\n')]]])
  , (',', Select (==','))
  , (' ', Select (==' '))
+ , ('<', Select (=='<'))
+ , ('>', Select (=='>'))
  ]
 
 backSlashesList :: [ (Char, RegexAction) ]
diff --git a/Hidden/TestMain.hs b/Hidden/TestMain.hs
--- a/Hidden/TestMain.hs
+++ b/Hidden/TestMain.hs
@@ -152,4 +152,13 @@
  , Just ( ("90af", ("", "g")), [] )     ~=? matchRegexPR "[[:xdigit:]]+" "90afg"
  , Just ( (" \n\t\r", ("", "a")), [] )  ~=?
      matchRegexPR "[[:blank:]]+" " \n\t\ra"
+ , "<em>Ruby</b> and <b>Perl</em>"      ~=?
+     gsubRegexPR "<b>(.*)<\\/b>" "<em>\\1</em>" "<b>Ruby</b> and <b>Perl</b>"
+ , "<em>Ruby</em> and <em>Perl</em>"    ~=?
+     gsubRegexPR "<b>(.*?)<\\/b>" "<em>\\1</em>" "<b>Ruby</b> and <b>Perl</b>"
+ , Just ( ("abab0", ("", "")), [(1,"ab")] )
+                                        ~=? matchRegexPR "(ab)\\{1}0" "abab0"
+ , Just ( ("\227\129\130", ("", "")), [] )
+                                        ~=?
+     matchRegexPR "\227\129\130" "\227\129\130"
  ]
diff --git a/Hidden/Tools.hs b/Hidden/Tools.hs
--- a/Hidden/Tools.hs
+++ b/Hidden/Tools.hs
@@ -16,10 +16,12 @@
 , guardEqual
 , (|||)
 , (&&&)
+, isBit7On
 ) where
 
 import Control.Monad.State( StateT(StateT, runStateT), lift, MonadTrans )
-import Data.Char          ( isAlphaNum, isSpace, isPrint )
+import Data.Char          ( isAlphaNum, isSpace, isPrint, ord )
+import Data.Bits          ( (.&.), shiftL )
 import Control.Monad      ( MonadPlus, guard )
 
 isSymbol :: Char -> Bool
@@ -51,3 +53,5 @@
 (p1 ||| p2) x = p1 x || p2 x
 (p1 &&& p2) x = p1 x && p2 x
 
+isBit7On :: Char -> Bool
+isBit7On c = ord c .&. (shiftL 1 7) /= 0
diff --git a/regexpr.cabal b/regexpr.cabal
--- a/regexpr.cabal
+++ b/regexpr.cabal
@@ -1,5 +1,5 @@
 Name:		regexpr
-Version:	0.1.7
+Version:	0.2.0
 License:	GPL
 License-File:	LICENSE
 Author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
