JS: How can I parse with regex name value pairs but separated only by semi-colon? : So I got this string (faceted search query):

    var q = ":salesRevenue:brand:Tchelicon:brand:Eurocom
    :brand:Turbosound:brand:Labgruppen:brand:Tannoy:brand:Klarkteknik
    :brand:Midas:brand:Bugera
    :brand:Tcelectronic
    :eligibleProduct:0010000066:publicProduct:false:brand:Behringer:productFilter:All:";

I want to split it to three separate strings, q_brand, q_pubs and q_product and my client wants it all in Regex.

q_brand is consisted only of values with values preceded with "brand:" only.

q_pubs are values preceded with "eligibleProduct:" and "publicProduct:".

q_product are values preceded with "productFilter:".

I want to be able to capture them even if they interchange positions using Regex (ex. like the position of :brand:Behringer:)

The end result is expected to be:

    var q_brand = "brand:Tchelicon:brand:Eurocom
    :brand:Turbosound:brand:Labgruppen:brand:Tannoy:brand:Klarkteknik
    :brand:Midas:brand:Bugera
    :brand:Tcelectronic:brand:Behringer";
    
    var q_pubs = "eligibleProduct:0010000066:publicProduct:false";
    
    var q_product = "productFilter:All";

I tried using `(brand:.+:)` on `brand:apple:brand:orange:product:hello:brand:grain:` for one instance and several others but getting unexpected result.