Well again, I would point out that your example sed's and your before and after data do no match.
You state you start with:
#define DEFAULT_AMPLIFICATION 30
Yet ALL of your sed examples in post 9 have nothing in common with this:
sed -i 's/(#DEFAULT AMPLIFICATION\s+)30/(#DEFAULT AMPLIFICATION\s+)0/g' config.h
sed -i 's/(#DEFAULT AMPLIFICATION\s+)30/\10/g' config.h
sed -i 's/#DEFAULT AMPLIFICATION 30/#DEFAULT AMPLIFICATION 0/g' config.h
In order they appear:
1. No -r option so all () will be interpreted as being part of the string which are not there
2. ALL sed searches are looking for lines starting with # and immediately followed by 'DEFAULT'. Again, not in your input data as line starts with '#define'
3. ALL sed's are searching for 'DEFAULT AMPLIFICATION', however the input has an underscore between the words. Again, no match
4. First sed will give incorrect output assuming search worked as '\s+' will be interpreted literally in the second half of sed
As you can see, the issue here is not so much what you are getting wrong with sed, but your expression you are searching for is flawed and hence no changes are being made.