enhance the ability of parse, now we could use range to describe the pattern