(((\?+|(\?\/|\/)(\?\/)*\?*)|([^\'\"\/\s\?]|((\?|\/)\?+[^\s\?\"])|((\?\/|\/)(\?\/)*([^\'\"\/\s\?\*]|\?(\?+[^\?\"\s]|[^\'\"\/\s\?]))))([^\'\"\/\s\?]|\?\?+[^\?\"\s]|(\/|\?\/)(\?\/)*([^\'\"\/\s\?\*]|\?(\?+[^\?\"\s]|[^\'\"\/\s\?])))*((\?+|(\/|\?\/)(\?\/)*\?*)?))|((\'([^\'?\\]|\\.|\?(\?+(\/.|[^?\/])))*(\'|\?\'))|(\"([^\"\\?]|\\.|\?\?+(\/.|[^\?\"\/]))*(\"|\?+\"))))
####
while( $line = <> )
{
if( $line =~ m/^$token$/ )
{
print "match\n";
}
else
{
print "mismatch\n";
}
}
####
x
match
/*x*/
mismatch
"x"
match
"\"
mismatch
"\""
match
"/*x*/"
match
"x"/*x*/
mismatch
/*x*/x
mismatch
x/*x*/
mismatch
//x
mismatch
x="2";
mismatch
####
(blank)
mismatch
x
match
x="2";
match
/*x*/
match
//x
match