Given that the search operations support flags, it seems natural for a developer that the other functions in the module support flags as well. So when running "re.split(pattern, string, re.I)", the split() command seems to not work and don't return a message error (I understand that 're.I' is understood as 'maxsplit=0'.) This is confusing and I think that it should be changed so that all functions in the module are consistent.
Please note that the flags can be inlined in the pattern instead. That is, you can begin the pattern with "(?i)" instead of passing re.I in the flags parameter.
Python 2.7 docs say this was added in 2.7.3.1 Python 3.1 docs say this was added in 3.1 The problem with calling 're.split(pattern, string, re.I)' is that you are using positional arguments only. If you were to do 're.split(pattern, string, flags=re.I)', that should produce the desired result.