
In order to fix issue of montezuma, http://code.google.com/p/montezuma/issues/detail?id=3, I suppose I found a bug of cl-ppcre. CL-USER> (cl-ppcre:scan (cl-ppcre:create-scanner "(\\w+)*\\@\\w+") "______________________________________" :start 0) ;; Evaluation aborted. It hangs when the number of underscore hit a critical value. I speculate that '\w' includes underscore in regular expression would account for this bug. and replace with other character of '\w' also has this problem. CL-USER> (cl-ppcre:scan (cl-ppcre:create-scanner "(a\\w+)*\\@\\w+") "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" :start 0) ;; Evaluation aborted. but if I eliminate the last \w, it is OK. CL-USER> (cl-ppcre:scan (cl-ppcre:create-scanner "(_\\w+)*\\@") "_______________________________________" :start 0) NIL I also check it in perl, Maybe perl is more efficient in regular expression operation, I raise the number of underscores, but it is OK. $str = "john._______________________________________ __________________________________"; if ($str =~ m/(_*\w+)*\@\w+/) { print "ok\n"; } Please check it and give your comment. 片云天共远永夜月同孤