ну-ну. смотрим:http://snowplow.org/martin/rebench/
~/bench$ perl rebench.pl
Text type: two regexps plain alternate la alternate prefix alternate FOO+ alternate F+OO alternate plain FOO BAR BAZ
plain unmatching 15.52 usecs 19.29 usecs 19.29 usecs 19.28 usecs 26.1 usecs 19.29 usecs 8.636 usecs
early FOO BAR 15.47 usecs 19.6 usecs 19.58 usecs 19.58 usecs 26.47 usecs 40.13 usecs 8.614 usecs
early FOO BAR BAZ 2.792 usecs 7.581 usecs 7.533 usecs 7.528 usecs 9.625 usecs 11.92 usecs 2.775 usecs
early FOO MORK MINK 10.89 usecs 7.533 usecs 7.556 usecs 7.519 usecs 9.636 usecs 11.9 usecs 8.621 usecs
end FOO BAR 15.47 usecs 19.58 usecs 19.56 usecs 19.56 usecs 26.49 usecs 33.84 usecs 8.635 usecs
end FOO BAR BAZ 8.702 usecs 20.81 usecs 20.79 usecs 20.85 usecs 27.66 usecs 35.07 usecs 8.646 usecs
end FOO MORK MINK 15.46 usecs 20.79 usecs 20.81 usecs 20.77 usecs 27.65 usecs 35.07 usecs 8.611 usecs
~/bench$ python rebench.py
Text type: prefix alternate plain alternate two regexps FOO+ alternate F+OO alternate la alternate plain FOO BAR BAZ
plain unmatching 22.65 usecs 113 usecs 42.55 usecs 21.3 usecs 307.2 usecs 378.4 usecs 21.28 usecs
early FOO BAR 21.45 usecs 113.3 usecs 51.53 usecs 21.42 usecs 304.8 usecs 375.4 usecs 21.31 usecs
early FOO BAR BAZ 6.704 usecs 34.21 usecs 6.555 usecs 6.678 usecs 91.95 usecs 114 usecs 6.545 usecs
early FOO MORK MINK 6.703 usecs 34.21 usecs 27.84 usecs 6.697 usecs 91.84 usecs 113.7 usecs 21.29 usecs
end FOO BAR 21.44 usecs 114.5 usecs 42.55 usecs 21.42 usecs 305.2 usecs 376 usecs 21.3 usecs
end FOO BAR BAZ 21.46 usecs 112.9 usecs 21.27 usecs 21.41 usecs 306.5 usecs 374.7 usecs 21.26 usecs
end FOO MORK MINK 21.47 usecs 112.8 usecs 42.53 usecs 21.47 usecs 305.4 usecs 374.9 usecs 21.28 usecs
а теперь меняем всего одну строчку в коде(вместо import re пишем import regex as re):
~/bench$ python rebench.py
Text type: prefix alternate plain alternate two regexps FOO+ alternate F+OO alternate la alternate plain FOO BAR BAZ
plain unmatching 14.5 usecs 14.45 usecs 18.41 usecs 14.43 usecs 14.46 usecs 14.42 usecs 10.31 usecs
early FOO BAR 14.57 usecs 14.57 usecs 18.35 usecs 14.63 usecs 19.08 usecs 14.84 usecs 10.27 usecs
early FOO BAR BAZ 6.233 usecs 6.171 usecs 3.374 usecs 5.298 usecs 9.726 usecs 5.563 usecs 3.35 usecs
early FOO MORK MINK 5.777 usecs 5.693 usecs 12.94 usecs 5.351 usecs 10.65 usecs 5.187 usecs 10.27 usecs
end FOO BAR 14.6 usecs 14.55 usecs 18.37 usecs 14.61 usecs 28.89 usecs 14.83 usecs 10.25 usecs
end FOO BAR BAZ 18.51 usecs 19.78 usecs 10.35 usecs 17.24 usecs 32.33 usecs 16.8 usecs 10.31 usecs
end FOO MORK MINK 17.76 usecs 17.21 usecs 18.36 usecs 17.06 usecs 33.07 usecs 15.25 usecs 10.26 usecs
а теперь import re2 as re:
~/bench$ python rebench.py
Text type: prefix alternate plain alternate two regexps FOO+ alternate F+OO alternate la alternate plain FOO BAR BAZ
plain unmatching 1.32 usecs 1.28 usecs 2.633 usecs 1.282 usecs 1.295 usecs 378.8 usecs 1.291 usecs
early FOO BAR 1.359 usecs 1.633 usecs 2.814 usecs 1.402 usecs 1.389 usecs 377.1 usecs 1.394 usecs
early FOO BAR BAZ 1.185 usecs 1.196 usecs 2.613 usecs 1.194 usecs 1.252 usecs 114.2 usecs 1.135 usecs
early FOO MORK MINK 1.221 usecs 1.211 usecs 2.611 usecs 1.237 usecs 1.264 usecs 114.2 usecs 1.388 usecs
end FOO BAR 1.35 usecs 1.358 usecs 2.757 usecs 1.362 usecs 1.377 usecs 377.4 usecs 1.366 usecs
end FOO BAR BAZ 1.733 usecs 1.719 usecs 3.054 usecs 1.774 usecs 1.742 usecs 382.6 usecs 1.66 usecs
end FOO MORK MINK 1.81 usecs 1.782 usecs 3.076 usecs 1.808 usecs 1.799 usecs 380.8 usecs 1.345 usecs
внезапно, ускорение в ~ 22 раза относительно первоначального варианта и в 10-15 раз быстрее libpcre и цена такого ускорения - поправить строчку импорта.
в более умном варианте это всё надо обернуть в try/except, сделав fallback на более медленную версию(как, кстати, такое сделать в perl?).