Guido> I think we've argued about '' in 'abc' long enough. Tim has failed to Guido> convince me, so '' in 'abc' returns True. Barry has checked it all Guido> in. I'm Inyeol Lee, happy python user. I checked other string methods and re functions. 1. most of them assume null character between normal characters and at the start/end of string; 'abc'.count('') -> 4 'abc'.endswith('') -> 1 'abc'.find('') -> 0 'abc'.index('') -> 0 'abc'.rfind('') -> 3 'abc'.rindex('') -> 3 'abc'.startswith('') -> 1 re.search('', 'abc').span() -> (0, 0) re.match('', 'abc').span() -> (0, 0) re.findall('', 'abc') -> ['', '', '', ''] re.sub('', '_', 'abc') -> '_a_b_c_' re.subn('', '_', 'abc') -> ('_a_b_c_', 4) 2. some of them generate exception; '' in 'abc' 'abc'.replace('', '_') 'abc'.split('') 3. one of them ignores empty match; re.split('', 'abc') -> ['abc'] (couldn't test re.finditer but it seems to be the same as re.findall.) Since '' in 'abc' now returns True, How about changing 'abc'.replace('') to generate '_a_b_c_', too? It is consistent with re.sub()/subn() and the cost for change is similar to '' in 'abc' case. Inyeol Lee