OK, I agree since it is more "adaptable" then than just all or nothing.
Just to ensure I have correctly understood (I'm so busy that I need to someone recheck, sorry ;-(
You want to have:
1. the user can define his own Pattern p = Pattern.compile("xxx");
2. Then giving this Pattern p as argument to DefaultHttpDataFactory new constructor (keeping the one without extra argument, but removing the extra set methods and in particular this isValidHtml4Name method)
3. By default, if no argument is given, the following Pattern will be compiled

Pattern.compile("\p{ASCII}&&[^=,;\s]");

Is that correct?
Also, if you could check the pattern, since 4 eyes are better than one when playing with regex...
Cheers