diff --git a/pythonetc/README.md b/pythonetc/README.md
index 25f14f7..e575572 100644
--- a/pythonetc/README.md
+++ b/pythonetc/README.md
@@ -99,6 +99,7 @@ More:
1. ./sqlite3.md
1. ./str-chain.md
1. ./json-allow-nan.md
+1. ./sre-parse.md
Out of order:
@@ -131,7 +132,8 @@ Lookup error
Make your own exceptions
When to use is
In uses hash, not eq
-sre_parse
super()
gc
trace
+atexit
+Lazy annotations hype
diff --git a/pythonetc/exc-info.md b/pythonetc/exc-info.md
index a9d36c8..7025696 100644
--- a/pythonetc/exc-info.md
+++ b/pythonetc/exc-info.md
@@ -1,10 +1,5 @@
-
-
-`exc_info`
-
When something fails, usually you want to log it. Let's have a look at a small toy example:
-
```python
from logging import getLogger
diff --git a/pythonetc/sre-parse.md b/pythonetc/sre-parse.md
new file mode 100644
index 0000000..e19b30e
--- /dev/null
+++ b/pythonetc/sre-parse.md
@@ -0,0 +1,25 @@
+Internally, the module [re](https://docs.python.org/3/library/re.html) uses 2 undocumented libraries:
+
++ `sre_parse` to parse regular expressions into an abstract syntax tree.
++ `sre_compile` to compile parsed expression.
+
+The first one can be used to see how a regexp was parsed by Python. There are many better tools and services (like [regex101.com](https://regex101.com/)) to debug regular expressions but this one is already in the stdlib.
+
+```python
+>>> sre_parse.parse(r'([Pp]ython)\s?etc').dump()
+SUBPATTERN 1 0 0
+ IN
+ LITERAL 80
+ LITERAL 112
+ LITERAL 121
+ LITERAL 116
+ LITERAL 104
+ LITERAL 111
+ LITERAL 110
+MAX_REPEAT 0 1
+ IN
+ CATEGORY CATEGORY_SPACE
+LITERAL 101
+LITERAL 116
+LITERAL 99
+```