You can use urlp and urlp_val to extract the id. Then, use acl to match the integer:
acl is_special path_beg /special acl small_id urlp_val(id) le 3 acl medium_id urlp_val(id) 4:6 acl high_id urlp_val(id) gt 6 use_backend bck1 if is_special small_id use_backend bck2 if is_special medium_id use_backend bck3 if is_special high_id default_backend bck_all Then, create 3 backends: one for each case.
Edit:
If you want to use regex on the query param, use urlp_reg:
acl small_id urlp_reg(id) ^[0-3] acl medium_id urlp_reg(id) ^[4-6] acl high_id urlp_reg(id) ^[7-9] Also check stick, depending on what you're trying to do.