support range, single term, and concatenation of ranges