If you run your regex through Expresso it tells you "Illegal Group Syntax"
(?...) is not a valid group. Did you mean (?<Name>...) which is a named group? Or (...) which is a numbered group?
Either way, it is difficult to see exactly what you are trying to match:
[^=&]+
will match one or more of any character which is not an ampersand or equals: but you them follow that with an equals so any occurance of ampersand will not match anyway: the equals test will fail.
If what you want is to match data=moredata& then all you need is
(.+?)=(.+?)&
Or
(?<PreEquals>.+?)=(?<PostEquals>.+?)&
if you prefer named groups.