I don't follow this regex completely but it seems to work allright. would like to understand it when have time 
I don't understand the `-`  not the `;` and the `q=(1|0?\.[0-9]{1,3})`