realized 'ignoring case' isn't that simple
realized 'ignoring case' isn't that simple

old way was to allow modifier to modify the two arguments participating
in a function. this however fails when it comes to regexes - calling
str.lower on a regex can change its meaning in ways other than just
case insensitivity - the proper way to do this is of course to call
re.match with re.IGNORECASE.

now a 'modifier' is an object that implements methods, which allows
their semantics to be changed as needed

yellcorp/dupescan