I am trying to store minus as the string in the key. I think its getting conflict with to(a-z) symbol
key   =  +qi::char_(".a-zA-Z0-9") | qi::lexeme[('[' >> +qi::char_("@ + - * . ( , ) $ a-zA-Z0-9 ") >> ']')];

value = +qi::char_("a-zA-Z0-9") ;


I have the string like below:

std::string input = “[(@vala - @valb) * @valc]:real";


Can someone help me to resolve this?
Regards,
UJ