not require Text::Balanced