def capture_regexes(): regexes = [] real_compile = re.compile real_search = re.search real_sub = re.sub def capture_compile(regex, flags=0): regexes.append((regex, flags)) return real_compile(regex, flags) def capture_search(regex, target, flags=0): regexes.append((regex, flags)) return real_search(regex, target, flags) def capture_sub(regex, *args): regexes.append((regex, 0)) return real_sub(regex, *args) re.compile = capture_compile re.search = capture_search re.sub = capture_sub try: import bm_regex_effbot bm_regex_effbot.test_regex_effbot(1) import bm_regex_v8 bm_regex_v8.test_regex_v8(1) finally: re.compile = real_compile re.search = real_search re.sub = real_sub return regexes