Dang. No need for patterns. How about simplifying to:

 * by default accepting `>= 200 && <= 299`
 * `optional bool acceptRedirect`

Can't think of any practical scenario for excluding certain "OK" responses, redirects, or accepting 4xx or 5xx codes.