hi all
i am using boost regex to check the systax of my URLs.
if i am giving a long URL then it is giving the following error:-

terminate called after throwing an instance of 'boost::bad_expression'
  what():  Memory exhausted
Aborted


and the program is aboted.
My code is this:-

#include<iostream>
#include <boost/regex/v4/regex.hpp>

bool EvaluateRegex(const std::string regularexp,std::string url){
        boost::smatch what;
        boost::regex exp(regularexp,boost::regex::extended);
        boost::regex_search(url,what,exp);
        std::string search=(std::string)what[0];
        if(search.length() == url.length())
                return true;
        else
                return false;
}

int main()
{
        std::string url;
        const std::string URLSYNTAXREGEX = "((https?|ftp)://)?(((([a-zA-Z0-9]+-?)?[a-zA-Z0-9]+)+[.]{1}[a-zA-Z0-9]+)+([:]{1}((0[0-7]+)|(0[xX][0-9a-fA-F]+)|([0-9]+))){0,1})([?/][-a-zA-Z0-9+&@#/%?=~_|!:,.; ]*)?";
        std::cout<<"enter the URL"<<std::endl;
        std::cin>>url;
        if(!EvaluateRegex(URLSYNTAXREGEX,url))
                std::cout<<"Malformed URL"<<std::endl;
        else
                std::cout<<"Well formed URL"<<std::endl;
        return 0;
}


Love cheap thrills? Enjoy PC-to-Phone calls to 30+ countries for just 2¢/min with Yahoo! Messenger with Voice.