Still, there are differences. First, re does NOT support python named group extension: it supports the latest perl compatible pcre by Phillip Hazel (the same source which underlies the python re module).
Second, pcre does not correctly support ISO-10646: the case mappings, etc are all wrong. This is a considered a bug and will eventually be fixed. In the mean time DO NOT USE any of the special escapes which represent whitespace, letters, etc. Furthermore, DO NOT USE any code which assumes hi bit set codes are Latin-1 encodings.
The marshal module cannot marshal code. Otherwise, it is binary upward compatible with python 1.5.2 marshals Note Viper can marshal rational numbers, which are not available in Python.
[Not implemented yet: floating point marshals. Not seriously tested: pascal compatible marshals.]
Pickle is also implemented. Again, code objects cannot be pickled. Otherwise, the format is an extension of python 1.5.2.
Note that because, in Viper, all modules except 'sys' are loaded from the file system, there is a hack forcing 'posix' to also be considered a builtin module, because unfortunately, python 1.5.2's 'os' module checks sys.builtin_module_names for 'posix'.