replaced {0} with <0> and added joiner handling for ranges