An extra section counts hits. When there is a hit on /shop/sr1.htm?district_id=102,103 or on /shop/sr1.htm?district_id=102&district_id=103 , it can only be counted as 1 hit.
Another approach would be to create an extra section that counts the hits on URL's including "102" and another that separately counts the hits on URL's including "103".
You wrote: " can I only match the first result. e.g. only match the first district_id in query string "
Just to clarify: your query string will only match one district_id query string anyway even without the ^. I am not sure about which one will be picked up if you have /shop/sr1.htm?district_id=102&district_id=103 .
It is not a good practice to use the same variable name twice in a query string. In my opinion, /shop/sr1.htm?district_id=102,103 would be a much better form than /shop/sr1.htm?district_id=102&district_id=103 . It would be easy to only pick up the first number within district_id=102,103 .