29   static const std::regex expression( 
"\\$(([A-Za-z0-9_]+)|\\(([A-Za-z0-9_]+)\\))" );
 
   32   auto                                                 start  = input.begin();
 
   33   auto                                                 end    = input.end();
 
   35   auto                                                 flags = std::regex_constants::match_default;
 
   38     if ( var.empty() ) var = 
std::string{ what[3].first, what[3].second };
 
   41       boost::algorithm::replace_first( result, 
std::string{ what[0].first, what[0].second }, env );
 
   43     start = what[0].second;
 
   45     flags |= std::regex_constants::match_prev_avail;