2005-01-13 17:06:21 +00:00
/*
*
* Copyright ( c ) 2004
2005-01-21 17:28:42 +00:00
* John Maddock
2005-01-13 17:06:21 +00:00
*
* Use , modification and distribution are subject to the
* Boost Software License , Version 1.0 . ( See accompanying file
* LICENSE_1_0 . txt or copy at http : //www.boost.org/LICENSE_1_0.txt)
*
*/
# include "test.hpp"
# ifdef BOOST_MSVC
# pragma warning(disable:4127)
# endif
2005-09-14 12:20:41 +00:00
void test_options3 ( ) ;
2005-01-13 17:06:21 +00:00
void test_independent_subs ( )
{
using namespace boost : : regex_constants ;
TEST_REGEX_SEARCH ( " (?>^abc) " , perl , " abc " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>^abc) " , perl , " def \n abc " , match_default , make_array ( 4 , 7 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>^abc) " , perl , " defabc " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>.*/)foo " , perl , " /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/ " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>.*/)foo " , perl , " /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo " , match_default , make_array ( 0 , 67 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>( \\ . \\ d \\ d[1-9]?)) \\ d+ " , perl , " 1.230003938 " , match_default , make_array ( 1 , 11 , 1 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>( \\ . \\ d \\ d[1-9]?)) \\ d+ " , perl , " 1.875000282 " , match_default , make_array ( 1 , 11 , 1 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>( \\ . \\ d \\ d[1-9]?)) \\ d+ " , perl , " 1.235 " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^((?> \\ w+)|(?> \\ s+))*$ " , perl , " now is the time for all good men to come to the aid of the party " , match_default , make_array ( 0 , 64 , 59 , 64 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^((?> \\ w+)|(?> \\ s+))*$ " , perl , " this is not a line with only words and spaces! " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?> \\ d+))( \\ w) " , perl , " 12345a " , match_default , make_array ( 0 , 6 , 0 , 5 , 5 , 6 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?> \\ d+))( \\ w) " , perl , " 12345+ " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?> \\ d+))( \\ d) " , perl , " 12345 " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a+)b " , perl , " aaab " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?>a+)b) " , perl , " aaab " , match_default , make_array ( 0 , 4 , 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>(a+))b " , perl , " aaab " , match_default , make_array ( 0 , 4 , 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>b)+ " , perl , " aaabbbccc " , match_default , make_array ( 3 , 6 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a+|b+|c+)*c " , perl , " aaabbbbccccd " , match_default , make_array ( 0 , 8 , - 2 , 8 , 9 , - 2 , 9 , 10 , - 2 , 10 , 11 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?>[^()]+)| \\ ([^()]* \\ ))+ " , perl , " ((abc(ade)ufh()()x " , match_default , make_array ( 2 , 18 , 17 , 18 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " \\ (((?>[^()]+)| \\ ([^()]+ \\ ))+ \\ ) " , perl , " (abc) " , match_default , make_array ( 0 , 5 , 1 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " \\ (((?>[^()]+)| \\ ([^()]+ \\ ))+ \\ ) " , perl , " (abc(def)xyz) " , match_default , make_array ( 0 , 13 , 9 , 12 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " \\ (((?>[^()]+)| \\ ([^()]+ \\ ))+ \\ ) " , perl , " ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a*)* " , perl , " a " , match_default , make_array ( 0 , 1 , - 2 , 1 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a*)* " , perl , " aa " , match_default , make_array ( 0 , 2 , - 2 , 2 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a*)* " , perl , " aaaa " , match_default , make_array ( 0 , 4 , - 2 , 4 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a*)* " , perl , " a " , match_default , make_array ( 0 , 1 , - 2 , 1 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a*)* " , perl , " aaabcde " , match_default , make_array ( 0 , 3 , - 2 , 3 , 3 , - 2 , 4 , 4 , - 2 , 5 , 5 , - 2 , 6 , 6 , - 2 , 7 , 7 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?>a*))* " , perl , " aaaaa " , match_default , make_array ( 0 , 5 , 5 , 5 , - 2 , 5 , 5 , 5 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?>a*))* " , perl , " aabbaa " , match_default , make_array ( 0 , 2 , 2 , 2 , - 2 , 2 , 2 , 2 , 2 , - 2 , 3 , 3 , 3 , 3 , - 2 , 4 , 6 , 6 , 6 , - 2 , 6 , 6 , 6 , 6 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?>a*?))* " , perl , " aaaaa " , match_default , make_array ( 0 , 0 , 0 , 0 , - 2 , 1 , 1 , 1 , 1 , - 2 , 2 , 2 , 2 , 2 , - 2 , 3 , 3 , 3 , 3 , - 2 , 4 , 4 , 4 , 4 , - 2 , 5 , 5 , 5 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?>a*?))* " , perl , " aabbaa " , match_default , make_array ( 0 , 0 , 0 , 0 , - 2 , 1 , 1 , 1 , 1 , - 2 , 2 , 2 , 2 , 2 , - 2 , 3 , 3 , 3 , 3 , - 2 , 4 , 4 , 4 , 4 , - 2 , 5 , 5 , 5 , 5 , - 2 , 6 , 6 , 6 , 6 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword " , perl , " word cat dog elephant mussel cow horse canary baboon snake shark otherword " , match_default , make_array ( 0 , 74 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword " , perl , " word cat dog elephant mussel cow horse canary baboon snake shark " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " word (?>[a-zA-Z0-9]+ ){0,30}otherword " , perl , " word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " word (?>[a-zA-Z0-9]+ ){0,30}otherword " , perl , " word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I really really hope otherword " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?>Z)+|A)+ " , perl , " ZABCDEFG " , match_default , make_array ( 0 , 2 , 1 , 2 , - 2 , - 2 ) ) ;
TEST_INVALID_REGEX ( " ((?>)+|A)+ " , perl ) ;
}
void test_conditionals ( )
{
using namespace boost : : regex_constants ;
TEST_REGEX_SEARCH ( " (?:(a)|b)(?(1)A|B) " , perl , " aA " , match_default , make_array ( 0 , 2 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(a)|b)(?(1)A|B) " , perl , " bB " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(a)|b)(?(1)A|B) " , perl , " aB " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(a)|b)(?(1)A|B) " , perl , " bA " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a)?(?(1)A)B " , perl , " aAB " , match_default , make_array ( 0 , 3 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a)?(?(1)A)B " , perl , " B " , match_default , make_array ( 0 , 1 , - 1 , - 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a)?(?(1)|A)B " , perl , " aB " , match_default , make_array ( 0 , 2 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a)?(?(1)|A)B " , perl , " AB " , match_default , make_array ( 0 , 2 , - 1 , - 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(a)?(?(1)a|b)+$ " , perl , " aa " , match_default , make_array ( 0 , 2 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(a)?(?(1)a|b)+$ " , perl , " b " , match_default , make_array ( 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(a)?(?(1)a|b)+$ " , perl , " bb " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(a)?(?(1)a|b)+$ " , perl , " ab " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(?=abc) \\ w{3}:| \\ d \\ d)$ " , perl , " abc: " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(?=abc) \\ w{3}:| \\ d \\ d)$ " , perl , " 12 " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(?=abc) \\ w{3}:| \\ d \\ d)$ " , perl , " 123 " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(?=abc) \\ w{3}:| \\ d \\ d)$ " , perl , " xyz " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(?!abc) \\ d \\ d| \\ w{3}:)$ " , perl , " abc: " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(?!abc) \\ d \\ d| \\ w{3}:)$ " , perl , " 12 " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(?!abc) \\ d \\ d| \\ w{3}:)$ " , perl , " 123 " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(?!abc) \\ d \\ d| \\ w{3}:)$ " , perl , " xyz " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?<=foo)bar|cat) " , perl , " foobar " , match_default , make_array ( 3 , 6 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?<=foo)bar|cat) " , perl , " cat " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?<=foo)bar|cat) " , perl , " fcat " , match_default , make_array ( 1 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?<=foo)bar|cat) " , perl , " focat " , match_default , make_array ( 2 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?<=foo)bar|cat) " , perl , " foocat " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?<!foo)cat|bar) " , perl , " foobar " , match_default , make_array ( 3 , 6 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?<!foo)cat|bar) " , perl , " cat " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?<!foo)cat|bar) " , perl , " fcat " , match_default , make_array ( 1 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?<!foo)cat|bar) " , perl , " focat " , match_default , make_array ( 2 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?<!foo)cat|bar) " , perl , " foocat " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ( \\ ()?[^()]+(?(1) \\ )) " , perl , " abcd " , match_default , make_array ( 0 , 4 , - 1 , - 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ( \\ ()?[^()]+(?(1) \\ )) " , perl , " (abcd) " , match_default , make_array ( 0 , 6 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ( \\ ()?[^()]+(?(1) \\ )) " , perl , " the quick (abcd) fox " , match_default , make_array ( 0 , 10 , - 1 , - 1 , - 2 , 10 , 16 , 10 , 11 , - 2 , 16 , 20 , - 1 , - 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ( \\ ()?[^()]+(?(1) \\ )) " , perl , " (abcd " , match_default , make_array ( 1 , 5 , - 1 , - 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(2)a|(1)(2))+$ " , perl , " 12 " , match_default , make_array ( 0 , 2 , 0 , 1 , 1 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(2)a|(1)(2))+$ " , perl , " 12a " , match_default , make_array ( 0 , 3 , 0 , 1 , 1 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(2)a|(1)(2))+$ " , perl , " 12aa " , match_default , make_array ( 0 , 4 , 0 , 1 , 1 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^(?(2)a|(1)(2))+$ " , perl , " 1234 " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_INVALID_REGEX ( " (a)(?(1)a|b|c) " , perl ) ;
TEST_INVALID_REGEX ( " (?(?=a)a|b|c) " , perl ) ;
TEST_INVALID_REGEX ( " (?(1a) " , perl ) ;
TEST_INVALID_REGEX ( " (?:(a)|b)(?( " , perl ) ;
TEST_INVALID_REGEX ( " (?:(a)|b)(?(1 " , perl ) ;
TEST_INVALID_REGEX ( " (?:(a)|b)(?(1) " , perl ) ;
TEST_INVALID_REGEX ( " (?:(a)|b)(?(a " , perl ) ;
TEST_INVALID_REGEX ( " (?:(a)|b)(?(? " , perl ) ;
TEST_INVALID_REGEX ( " (?:(a)|b)(?(?: " , perl ) ;
TEST_INVALID_REGEX ( " (?:(a)|b)(?(?< " , perl ) ;
TEST_INVALID_REGEX ( " (?:(a)|b)(?(?<a " , perl ) ;
2008-01-11 09:55:43 +00:00
TEST_INVALID_REGEX ( " (?(?!#?)+) " , perl ) ;
TEST_INVALID_REGEX ( " (?(?=:-){0}) " , perl ) ;
TEST_INVALID_REGEX ( " (?(123){1}) " , perl ) ;
TEST_INVALID_REGEX ( " (?(?<=A)*) " , perl ) ;
TEST_INVALID_REGEX ( " (?(?<=A)+) " , perl ) ;
TEST_INVALID_REGEX ( " (?<!*|^) " , perl ) ;
TEST_INVALID_REGEX ( " (?<!*|A) " , perl ) ;
TEST_INVALID_REGEX ( " (?<=?|A) " , perl ) ;
2008-01-14 09:46:12 +00:00
TEST_INVALID_REGEX ( " (?<=*| \\ B) " , perl ) ;
2005-01-13 17:06:21 +00:00
}
void test_options ( )
{
// test the (?imsx) construct:
using namespace boost : : regex_constants ;
TEST_INVALID_REGEX ( " (?imsx " , perl ) ;
TEST_INVALID_REGEX ( " (?g " , perl ) ;
TEST_INVALID_REGEX ( " (?im-sx " , perl ) ;
TEST_INVALID_REGEX ( " (?im-sx: " , perl ) ;
TEST_INVALID_REGEX ( " (?-g) " , perl ) ;
TEST_REGEX_SEARCH ( " (?-m)^abc " , perl , " abc \n abc " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?m)^abc " , perl | no_mod_m , " abc \n abc " , match_default , make_array ( 0 , 3 , - 2 , 4 , 7 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-m)^abc " , perl , " abc \n abc " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?m)^abc " , perl | no_mod_m , " abc \n abc " , match_default , make_array ( 0 , 3 , - 2 , 4 , 7 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^ a (?# begins with a) b \\ sc (?# then b c) $ (?# then end) " , perl | mod_x , " ab c " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^ a (?# begins with a) b \\ sc (?# then b c) $ (?# then end) " , perl | mod_x , " abc " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^ a (?# begins with a) b \\ sc (?# then b c) $ (?# then end) " , perl | mod_x , " ab cde " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?x) ^ a (?# begins with a) b \\ sc (?# then b c) $ (?# then end) " , perl , " ab c " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?x) ^ a (?# begins with a) b \\ sc (?# then b c) $ (?# then end) " , perl , " abc " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?x) ^ a (?# begins with a) b \\ sc (?# then b c) $ (?# then end) " , perl , " ab cde " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^ a \\ b[c ]d $ " , perl | mod_x , " a bcd " , match_default , make_array ( 0 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^ a \\ b[c ]d $ " , perl | mod_x , " a b d " , match_default , make_array ( 0 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^ a \\ b[c ]d $ " , perl | mod_x , " abcd " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^ a \\ b[c ]d $ " , perl | mod_x , " ab d " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^1234(?# test newlines \n inside) " , perl | mod_x , " 1234 " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^1234 #comment in extended re \n " , perl | mod_x , " 1234 " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " #rhubarb \n abcd " , perl | mod_x , " abcd " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^1234 #comment in extended re \r \n " , perl | mod_x , " 1234 " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " #rhubarb \r \n abcd " , perl | mod_x , " abcd " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^abcd#rhubarb " , perl | mod_x , " abcd " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^abcd#rhubarb " , perl , " abcd#rhubarb " , match_default , make_array ( 0 , 12 , - 2 , - 2 ) ) ;
2005-07-12 10:08:11 +00:00
TEST_REGEX_SEARCH ( " ^a b \n \n c " , perl | mod_x , " abc " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
2005-01-13 17:06:21 +00:00
TEST_REGEX_SEARCH ( " (?(?=[^a-z]+[a-z]) \\ d{2}-[a-z]{3}- \\ d{2} | \\ d{2}- \\ d{2}- \\ d{2} ) " , perl | mod_x , " 12-sep-98 " , match_default , make_array ( 0 , 9 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?=[^a-z]+[a-z]) \\ d{2}-[a-z]{3}- \\ d{2} | \\ d{2}- \\ d{2}- \\ d{2} ) " , perl | mod_x , " 12-09-98 " , match_default , make_array ( 0 , 8 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?(?=[^a-z]+[a-z]) \\ d{2}-[a-z]{3}- \\ d{2} | \\ d{2}- \\ d{2}- \\ d{2} ) " , perl | mod_x , " sep-12-98 " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ^a (?#xxx) (?#yyy) {3}c " , perl | mod_x , " aaac " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a b " , perl | mod_x , " ab " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " abc \\ Q abc \\ Eabc " , perl | mod_x , " abc abcabc " , match_default , make_array ( 0 , 10 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " abc \\ Q abc \\ Eabc " , perl | mod_x , " abcabcabc " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " abc#comment \n \\ Q#not comment \n literal \\ E " , perl | mod_x , " abc#not comment \n literal " , match_default , make_array ( 0 , 27 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " abc#comment \n \\ Q#not comment \n literal " , perl | mod_x , " abc#not comment \n literal " , match_default , make_array ( 0 , 27 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " abc#comment \n \\ Q#not comment \n literal \\ E #more comment \n " , perl | mod_x , " abc#not comment \n literal " , match_default , make_array ( 0 , 27 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " abc#comment \n \\ Q#not comment \n literal \\ E #more comment " , perl | mod_x , " abc#not comment \n literal " , match_default , make_array ( 0 , 27 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a (?x)b c)d e " , perl , " a bcd e " , match_default , make_array ( 0 , 7 , 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a (?x)b c)d e " , perl , " a b cd e " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a (?x)b c)d e " , perl , " abcd e " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a (?x)b c)d e " , perl , " a bcde " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a b(?x)c d (?-x)e f) " , perl , " a bcde f " , match_default , make_array ( 0 , 8 , 0 , 8 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a b(?x)c d (?-x)e f) " , perl , " abcdef " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?x: b c )d " , perl , " XabcdY " , match_default , make_array ( 1 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?x: b c )d " , perl , " Xa b c d Y " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?x)x y z | a b c) " , perl , " XabcY " , match_default , make_array ( 1 , 4 , 1 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?x)x y z | a b c) " , perl , " AxyzB " , match_default , make_array ( 1 , 4 , 1 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a (?x)b c)d e " , perl , " a bcd e " , match_default , make_array ( 0 , 7 , 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a (?x)b c)d e " , perl , " a b cd e " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a (?x)b c)d e " , perl , " abcd e " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a (?x)b c)d e " , perl , " a bcde " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a b(?x)c d (?-x)e f) " , perl , " a bcde f " , match_default , make_array ( 0 , 8 , 0 , 8 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a b(?x)c d (?-x)e f) " , perl , " abcdef " , match_default , make_array ( - 2 , - 2 ) ) ;
}
void test_options2 ( )
{
using namespace boost : : regex_constants ;
TEST_INVALID_REGEX ( " (?i- " , perl ) ;
TEST_INVALID_REGEX ( " (?i-s " , perl ) ;
TEST_INVALID_REGEX ( " (?i-sd) " , perl ) ;
TEST_REGEX_SEARCH ( " (a(?i)b)c " , perl , " abc " , match_default , make_array ( 0 , 3 , 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)b)c " , perl , " aBc " , match_default , make_array ( 0 , 3 , 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)b)c " , perl , " abC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)b)c " , perl , " aBC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)b)c " , perl , " Abc " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)b)c " , perl , " ABc " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)b)c " , perl , " ABC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)b)c " , perl , " AbC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)B)c " , perl , " abc " , match_default , make_array ( 0 , 3 , 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)B)c " , perl , " aBc " , match_default , make_array ( 0 , 3 , 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)B)c " , perl , " abC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)B)c " , perl , " aBC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)B)c " , perl , " Abc " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)B)c " , perl , " ABc " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)B)c " , perl , " ABC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (a(?i)B)c " , perl , " AbC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?i:b)c " , perl , " abc " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?i:b)c " , perl , " aBc " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?i:b)c " , perl , " ABC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?i:b)c " , perl , " abC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?i:b)c " , perl , " aBC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?i:b)*c " , perl , " aBc " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?i:b)*c " , perl , " aBBc " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?i:b)*c " , perl , " aBC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?i:b)*c " , perl , " aBBC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?=b(?i)c) \\ w \\ wd " , perl , " abcd " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?=b(?i)c) \\ w \\ wd " , perl , " abCd " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?=b(?i)c) \\ w \\ wd " , perl , " aBCd " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?=b(?i)c) \\ w \\ wd " , perl , " abcD " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?s-i:more.*than).*million " , perl | icase , " more than million " , match_default , make_array ( 0 , 17 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?s-i:more.*than).*million " , perl | icase , " more than MILLION " , match_default , make_array ( 0 , 17 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?s-i:more.*than).*million " , perl | icase , " more \n than Million " , match_default , make_array ( 0 , 19 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?s-i:more.*than).*million " , perl | icase , " MORE THAN MILLION " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?s-i:more.*than).*million " , perl | icase | no_mod_s | no_mod_m , " more \n than \n million " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(?s-i)more.*than).*million " , perl | icase , " more than million " , match_default , make_array ( 0 , 17 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(?s-i)more.*than).*million " , perl | icase , " more than MILLION " , match_default , make_array ( 0 , 17 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(?s-i)more.*than).*million " , perl | icase , " more \n than Million " , match_default , make_array ( 0 , 19 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(?s-i)more.*than).*million " , perl | icase , " MORE THAN MILLION " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(?s-i)more.*than).*million " , perl | icase | no_mod_s | no_mod_m , " more \n than \n million " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a(?i)b+)+c " , perl , " abc " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a(?i)b+)+c " , perl , " aBbc " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a(?i)b+)+c " , perl , " aBBc " , match_default , make_array ( 0 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a(?i)b+)+c " , perl , " Abc " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a(?i)b+)+c " , perl , " abAb " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?>a(?i)b+)+c " , perl , " abbC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?=a(?i)b) \\ w \\ wc " , perl , " abc " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?=a(?i)b) \\ w \\ wc " , perl , " aBc " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?=a(?i)b) \\ w \\ wc " , perl , " Ab " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?=a(?i)b) \\ w \\ wc " , perl , " abC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?=a(?i)b) \\ w \\ wc " , perl , " aBC " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?<=a(?i)b)( \\ w \\ w)c " , perl , " abxxc " , match_default , make_array ( 2 , 5 , 2 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?<=a(?i)b)( \\ w \\ w)c " , perl , " aBxxc " , match_default , make_array ( 2 , 5 , 2 , 4 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?<=a(?i)b)( \\ w \\ w)c " , perl , " Abxxc " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?<=a(?i)b)( \\ w \\ w)c " , perl , " ABxxc " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?<=a(?i)b)( \\ w \\ w)c " , perl , " abxxC " , match_default , make_array ( - 2 , - 2 ) ) ;
2005-09-14 12:20:41 +00:00
TEST_REGEX_SEARCH ( " (?<=^.{4})(?:bar|cat) " , perl , " fooocat " , match_default , make_array ( 4 , 7 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?<=^.{4})(?:bar|cat) " , perl , " foocat " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?<=^a{4})(?:bar|cat) " , perl , " aaaacat " , match_default , make_array ( 4 , 7 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?<=^a{4})(?:bar|cat) " , perl , " aaacat " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?<=^[[:alpha:]]{4})(?:bar|cat) " , perl , " aaaacat " , match_default , make_array ( 4 , 7 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?<=^[[:alpha:]]{4})(?:bar|cat) " , perl , " aaacat " , match_default , make_array ( - 2 , - 2 ) ) ;
2005-01-13 17:06:21 +00:00
TEST_REGEX_SEARCH ( " (?<=ab(?i)x(?-i)y|(?i)z|b)ZZ " , perl , " abxyZZ " , match_default , make_array ( 4 , 6 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?<=ab(?i)x(?-i)y|(?i)z|b)ZZ " , perl , " abXyZZ " , match_default , make_array ( 4 , 6 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:ab(?i)x(?-i)y|(?i)z|b)ZZ " , perl , " ZZZ " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:ab(?i)x(?-i)y|(?i)z|b)ZZ " , perl , " zZZ " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:ab(?i)x(?-i)y|(?i)z|b)ZZ " , perl , " bZZ " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:ab(?i)x(?-i)y|(?i)z|b)ZZ " , perl , " BZZ " , match_default , make_array ( 0 , 3 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:ab(?i)x(?-i)y|(?i)z|b)ZZ " , perl , " ZZ " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:ab(?i)x(?-i)y|(?i)z|b)ZZ " , perl , " abXYZZ " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:ab(?i)x(?-i)y|(?i)z|b)ZZ " , perl , " zzz " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:ab(?i)x(?-i)y|(?i)z|b)ZZ " , perl , " bzz " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i)[[:lower:]])[[:lower:]] " , perl | icase , " ab " , match_default , make_array ( 0 , 2 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i)[[:lower:]])[[:lower:]] " , perl | icase , " aB " , match_default , make_array ( 0 , 2 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i)[[:lower:]])[[:lower:]] " , perl | icase , " Ab " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i)[[:lower:]])[[:lower:]] " , perl | icase , " AB " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?-i)b " , perl | icase , " ab " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?-i)b " , perl | icase , " Ab " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?-i)b " , perl | icase , " aB " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " a(?-i)b " , perl | icase , " AB " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(?-i)a)b " , perl | icase , " ab " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i)a)b " , perl | icase , " ab " , match_default , make_array ( 0 , 2 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(?-i)a)b " , perl | icase , " aB " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i)a)b " , perl | icase , " aB " , match_default , make_array ( 0 , 2 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(?-i)a)b " , perl | icase , " Ab " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(?-i)a)b " , perl | icase , " aB " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i)a)b " , perl | icase , " aB " , match_default , make_array ( 0 , 2 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(?-i)a)b " , perl | icase , " Ab " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?:(?-i)a)b " , perl | icase , " AB " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-i:a)b " , perl | icase , " ab " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i:a))b " , perl | icase , " ab " , match_default , make_array ( 0 , 2 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-i:a)b " , perl | icase , " aB " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i:a))b " , perl | icase , " aB " , match_default , make_array ( 0 , 2 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-i:a)b " , perl | icase , " AB " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-i:a)b " , perl | icase , " Ab " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-i:a)b " , perl | icase , " aB " , match_default , make_array ( 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i:a))b " , perl | icase , " aB " , match_default , make_array ( 0 , 2 , 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-i:a)b " , perl | icase , " Ab " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-i:a)b " , perl | icase , " AB " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i:a.))b " , perl | icase , " AB " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?-i:a.))b " , perl | icase , " A \n B " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " ((?s-i:a.))b " , perl | icase , " a \n B " , match_default , make_array ( 0 , 3 , 0 , 2 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " . " , perl , " \n " , match_default , make_array ( 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " . " , perl , " \n " , match_default | match_not_dot_newline , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " . " , perl | mod_s , " \n " , match_default , make_array ( 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " . " , perl | mod_s , " \n " , match_default | match_not_dot_newline , make_array ( 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " . " , perl | no_mod_s , " \n " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " . " , perl | no_mod_s , " \n " , match_default | match_not_dot_newline , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?s). " , perl , " \n " , match_default , make_array ( 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?s). " , perl , " \n " , match_default | match_not_dot_newline , make_array ( 0 , 1 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-s). " , perl , " \n " , match_default , make_array ( - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-s). " , perl , " \n " , match_default | match_not_dot_newline , make_array ( - 2 , - 2 ) ) ;
2005-09-14 12:20:41 +00:00
test_options3 ( ) ;
}
void test_options3 ( )
{
using namespace boost : : regex_constants ;
2005-01-13 17:06:21 +00:00
TEST_REGEX_SEARCH ( " .+ " , perl , " \n " , match_default , make_array ( 0 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " .+ " , perl , " \n " , match_default | match_not_dot_newline , make_array ( 0 , 2 , - 2 , 3 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " .+ " , perl | mod_s , " \n " , match_default , make_array ( 0 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " .+ " , perl | mod_s , " \n " , match_default | match_not_dot_newline , make_array ( 0 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " .+ " , perl | no_mod_s , " \n " , match_default , make_array ( 0 , 2 , - 2 , 3 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " .+ " , perl | no_mod_s , " \n " , match_default | match_not_dot_newline , make_array ( 0 , 2 , - 2 , 3 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?s).+ " , perl , " \n " , match_default , make_array ( 0 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?s).+ " , perl , " \n " , match_default | match_not_dot_newline , make_array ( 0 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-s).+ " , perl , " \n " , match_default , make_array ( 0 , 2 , - 2 , 3 , 5 , - 2 , - 2 ) ) ;
TEST_REGEX_SEARCH ( " (?-s).+ " , perl , " \n " , match_default | match_not_dot_newline , make_array ( 0 , 2 , - 2 , 3 , 5 , - 2 , - 2 ) ) ;
const char * big_expression =
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* # optional leading comment \n "
" (?: (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \n "
" \" (?: # opening quote... \n "
" [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \" ] # Anything except backslash and quote \n "
" | # or \n "
" \\ \\ [^ \\ x80- \\ xff] # Escaped something (something != CR) \n "
" )* \" # closing quote \n "
" ) # initial word \n "
" (?: (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* \\ . (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \n "
" \" (?: # opening quote... \n "
" [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \" ] # Anything except backslash and quote \n "
" | # or \n "
" \\ \\ [^ \\ x80- \\ xff] # Escaped something (something != CR) \n "
" )* \" # closing quote \n "
" ) )* # further okay, if led by a period \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* @ (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \\ [ # [ \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \\ [ \\ ]] | \\ \\ [^ \\ x80- \\ xff] )* # stuff \n "
" \\ ] # ] \n "
" ) # initial subdomain \n "
" (?: # \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* \\ . # if led by a period... \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \\ [ # [ \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \\ [ \\ ]] | \\ \\ [^ \\ x80- \\ xff] )* # stuff \n "
" \\ ] # ] \n "
" ) # ...further okay \n "
" )* \n "
" # address \n "
" | # or \n "
" (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \n "
" \" (?: # opening quote... \n "
" [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \" ] # Anything except backslash and quote \n "
" | # or \n "
" \\ \\ [^ \\ x80- \\ xff] # Escaped something (something != CR) \n "
" )* \" # closing quote \n "
" ) # one word, optionally followed by.... \n "
" (?: \n "
" [^()<>@,;: \" . \\ \\ \\ [ \\ ] \\ x80- \\ xff \\ 000- \\ 010 \\ 012- \\ 037] | # atom and space parts, or... \n "
" \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) | # comments, or... \n "
" \" (?: # opening quote... \n "
" [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \" ] # Anything except backslash and quote \n "
" | # or \n "
" \\ \\ [^ \\ x80- \\ xff] # Escaped something (something != CR) \n "
" )* \" # closing quote \n "
" # quoted strings \n "
" )* \n "
" < (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* # leading < \n "
" (?: @ (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \\ [ # [ \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \\ [ \\ ]] | \\ \\ [^ \\ x80- \\ xff] )* # stuff \n "
" \\ ] # ] \n "
" ) # initial subdomain \n "
" (?: # \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* \\ . # if led by a period... \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \\ [ # [ \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \\ [ \\ ]] | \\ \\ [^ \\ x80- \\ xff] )* # stuff \n "
" \\ ] # ] \n "
" ) # ...further okay \n "
" )* \n "
" (?: (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* , (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* @ (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \\ [ # [ \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \\ [ \\ ]] | \\ \\ [^ \\ x80- \\ xff] )* # stuff \n "
" \\ ] # ] \n "
" ) # initial subdomain \n "
" (?: # \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* \\ . # if led by a period... \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \\ [ # [ \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \\ [ \\ ]] | \\ \\ [^ \\ x80- \\ xff] )* # stuff \n "
" \\ ] # ] \n "
" ) # ...further okay \n "
" )* \n "
" )* # further okay, if led by comma \n "
" : # closing colon \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* )? # optional route \n "
" (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \n "
" \" (?: # opening quote... \n "
" [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \" ] # Anything except backslash and quote \n "
" | # or \n "
" \\ \\ [^ \\ x80- \\ xff] # Escaped something (something != CR) \n "
" )* \" # closing quote \n "
" ) # initial word \n "
" (?: (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* \\ . (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \n "
" \" (?: # opening quote... \n "
" [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \" ] # Anything except backslash and quote \n "
" | # or \n "
" \\ \\ [^ \\ x80- \\ xff] # Escaped something (something != CR) \n "
" )* \" # closing quote \n "
" ) )* # further okay, if led by a period \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* @ (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \\ [ # [ \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \\ [ \\ ]] | \\ \\ [^ \\ x80- \\ xff] )* # stuff \n "
" \\ ] # ] \n "
" ) # initial subdomain \n "
" (?: # \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* \\ . # if led by a period... \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* (?: \n "
" [^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]+ # some number of atom characters... \n "
" (?![^( \\ 040)<>@,;: \" . \\ \\ \\ [ \\ ] \\ 000- \\ 037 \\ x80- \\ xff]) # ..not followed by something that could be part of an atom \n "
" | \\ [ # [ \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015 \\ [ \\ ]] | \\ \\ [^ \\ x80- \\ xff] )* # stuff \n "
" \\ ] # ] \n "
" ) # ...further okay \n "
" )* \n "
" # address spec \n "
" (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* > # trailing > \n "
" # name and address \n "
" ) (?: [ \\ 040 \\ t] | \\ ( \n "
" (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] | \\ ( (?: [^ \\ \\ \\ x80- \\ xff \\ n \\ 015()] | \\ \\ [^ \\ x80- \\ xff] )* \\ ) )* \n "
" \\ ) )* # optional trailing comment \n "
" \n " ;
do {
test_info < char > : : set_info ( __FILE__ , __LINE__ ,
big_expression ,
perl | mod_x , " Alan Other <user@dom.ain> " , match_default ,
make_array ( 0 , 25 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# if !defined(BOOST_NO_WREGEX) && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) && !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
do {
std : : string st ( big_expression ) ;
test_info < wchar_t > : : set_info ( __FILE__ , __LINE__ ,
std : : wstring ( st . begin ( ) , st . end ( ) ) ,
perl | mod_x , L " Alan Other <user@dom.ain> " , match_default ,
make_array ( 0 , 25 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# endif
do {
test_info < char > : : set_info ( __FILE__ , __LINE__ ,
big_expression ,
perl | mod_x , " <user@dom.ain> " , match_default ,
make_array ( 1 , 13 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# if !defined(BOOST_NO_WREGEX) && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) && !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
do {
std : : string st ( big_expression ) ;
test_info < wchar_t > : : set_info ( __FILE__ , __LINE__ ,
std : : wstring ( st . begin ( ) , st . end ( ) ) ,
perl | mod_x , L " <user@dom.ain> " , match_default ,
make_array ( 1 , 13 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# endif
do {
test_info < char > : : set_info ( __FILE__ , __LINE__ ,
big_expression ,
perl | mod_x , " \" A. Other \" <user.1234@dom.ain> (a comment) " , match_default ,
make_array ( 0 , 42 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# if !defined(BOOST_NO_WREGEX) && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) && !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
do {
std : : string st ( big_expression ) ;
test_info < wchar_t > : : set_info ( __FILE__ , __LINE__ ,
std : : wstring ( st . begin ( ) , st . end ( ) ) ,
perl | mod_x , L " \" A. Other \" <user.1234@dom.ain> (a comment) " , match_default ,
make_array ( 0 , 42 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# endif
do {
test_info < char > : : set_info ( __FILE__ , __LINE__ ,
big_expression ,
perl | mod_x , " A. Other <user.1234@dom.ain> (a comment) " , match_default ,
make_array ( 2 , 40 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# if !defined(BOOST_NO_WREGEX) && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) && !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
do {
std : : string st ( big_expression ) ;
test_info < wchar_t > : : set_info ( __FILE__ , __LINE__ ,
std : : wstring ( st . begin ( ) , st . end ( ) ) ,
perl | mod_x , L " A. Other <user.1234@dom.ain> (a comment) " , match_default ,
make_array ( 2 , 40 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# endif
do {
test_info < char > : : set_info ( __FILE__ , __LINE__ ,
big_expression ,
perl | mod_x , " \" /s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/ \" @x400-re.lay " , match_default ,
make_array ( 0 , 61 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# if !defined(BOOST_NO_WREGEX) && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) && !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
do {
std : : string st ( big_expression ) ;
test_info < wchar_t > : : set_info ( __FILE__ , __LINE__ ,
std : : wstring ( st . begin ( ) , st . end ( ) ) ,
perl | mod_x , L " \" /s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/ \" @x400-re.lay " , match_default ,
make_array ( 0 , 61 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# endif
do {
test_info < char > : : set_info ( __FILE__ , __LINE__ ,
big_expression ,
perl | mod_x , " A missing angle <user@some.where " , match_default ,
make_array ( 17 , 32 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# if !defined(BOOST_NO_WREGEX) && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) && !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
do {
std : : string st ( big_expression ) ;
test_info < wchar_t > : : set_info ( __FILE__ , __LINE__ ,
std : : wstring ( st . begin ( ) , st . end ( ) ) ,
perl | mod_x , L " A missing angle <user@some.where " , match_default ,
make_array ( 17 , 32 , - 2 , - 2 ) ) ;
test ( char ( 0 ) , test_regex_search_tag ( ) ) ;
} while ( 0 ) ;
# endif
}