diff --git a/benchmark/samples/block-html.md b/benchmark/samples/block-html.md
new file mode 100644
index 0000000..ff7f8fa
--- /dev/null
+++ b/benchmark/samples/block-html.md
@@ -0,0 +1,32 @@
+
+
+blah blah
+
+
+
+
+
+
+
+
+
+
+
+ test
+
+ |
+
+
+
+
+
+
+
diff --git a/benchmark/samples/block-list-flat.md b/benchmark/samples/block-list-flat.md
new file mode 100644
index 0000000..14149db
--- /dev/null
+++ b/benchmark/samples/block-list-flat.md
@@ -0,0 +1,67 @@
+ - tidy
+ - bullet
+ - list
+
+
+ - loose
+
+ - bullet
+
+ - list
+
+
+ 0. ordered
+ 1. list
+ 2. example
+
+
+ -
+ -
+ -
+ -
+
+
+ 1.
+ 2.
+ 3.
+
+
+ - an example
+of a list item
+ with a continuation
+
+ this part is inside the list
+
+ this part is just a paragraph
+
+
+ 1. test
+ - test
+ 1. test
+ - test
+
+
+111111111111111111111111111111111111111111. is this a valid bullet?
+
+ - _________________________
+
+ - this
+ - is
+
+ a
+
+ long
+ - loose
+ - list
+
+ - with
+ - some
+
+ tidy
+
+ - list
+ - items
+ - in
+
+ - between
+ - _________________________
diff --git a/benchmark/samples/block-list-nested.md b/benchmark/samples/block-list-nested.md
new file mode 100644
index 0000000..d30aed3
--- /dev/null
+++ b/benchmark/samples/block-list-nested.md
@@ -0,0 +1,36 @@
+
+ - this
+ - is
+ - a
+ - deeply
+ - nested
+ - bullet
+ - list
+
+
+ 1. this
+ 2. is
+ 3. a
+ 4. deeply
+ 5. nested
+ 6. unordered
+ 7. list
+
+
+ - 1
+ - 2
+ - 3
+ - 4
+ - 5
+ - 6
+ - 7
+ - 6
+ - 5
+ - 4
+ - 3
+ - 2
+ - 1
+
+
+ - - - - - - - - - deeply-nested one-element item
+
diff --git a/benchmark/samples/block-ref-flat.md b/benchmark/samples/block-ref-flat.md
new file mode 100644
index 0000000..c83dccb
--- /dev/null
+++ b/benchmark/samples/block-ref-flat.md
@@ -0,0 +1,15 @@
+[1] [2] [3] [1] [2] [3]
+
+[looooooooooooooooooooooooooooooooooooooooooooooooooong label]
+
+ [1]:
+ [2]: http://something.example.com/foo/bar 'test'
+ [3]:
+ http://foo/bar
+ [ looooooooooooooooooooooooooooooooooooooooooooooooooong label ]:
+ 111
+ 'test'
+ [[[[[[[[[[[[[[[[[[[[ this should not slow down anything ]]]]]]]]]]]]]]]]]]]]: q
+ (as long as it is not referenced anywhere)
+
+ [[[[[[[[[[[[[[[[[[[[]: this is not a valid reference
diff --git a/benchmark/samples/block-ref-nested.md b/benchmark/samples/block-ref-nested.md
new file mode 100644
index 0000000..1e10a8c
--- /dev/null
+++ b/benchmark/samples/block-ref-nested.md
@@ -0,0 +1,17 @@
+[[[[[[[foo]]]]]]]
+
+[[[[[[[foo]]]]]]]: bar
+[[[[[[foo]]]]]]: bar
+[[[[[foo]]]]]: bar
+[[[[foo]]]]: bar
+[[[foo]]]: bar
+[[foo]]: bar
+[foo]: bar
+
+[*[*[*[*[foo]*]*]*]*]
+
+[*[*[*[*[foo]*]*]*]*]: bar
+[*[*[*[foo]*]*]*]: bar
+[*[*[foo]*]*]: bar
+[*[foo]*]: bar
+[foo]: bar
diff --git a/benchmark/samples/inline-autolink.md b/benchmark/samples/inline-autolink.md
new file mode 100644
index 0000000..0f71482
--- /dev/null
+++ b/benchmark/samples/inline-autolink.md
@@ -0,0 +1,14 @@
+closed (valid) autolinks:
+
+
+
+
+
+
+these are not autolinks:
+
+
diff --git a/benchmark/samples/inline-entity.md b/benchmark/samples/inline-entity.md
new file mode 100644
index 0000000..2a0c7b3
--- /dev/null
+++ b/benchmark/samples/inline-entity.md
@@ -0,0 +1,11 @@
+stmd tests:
+
+ & © Æ Ď ¾ ℋ ⅆ ∲
+
+# Ӓ Ϡ
+
+non-entities:
+
+&18900987654321234567890; &1234567890098765432123456789009876543212345678987654;
+
+&qwertyuioppoiuytrewqwer; &oiuytrewqwertyuioiuytrewqwertyuioytrewqwertyuiiuytri;
diff --git a/benchmark/samples/inline-escape.md b/benchmark/samples/inline-escape.md
index 1297ba9..4e1bb39 100644
--- a/benchmark/samples/inline-escape.md
+++ b/benchmark/samples/inline-escape.md
@@ -11,3 +11,5 @@
\\\\
\\\\\
+\ \ \ \
+
diff --git a/benchmark/samples/inline-html.md b/benchmark/samples/inline-html.md
new file mode 100644
index 0000000..a28e618
--- /dev/null
+++ b/benchmark/samples/inline-html.md
@@ -0,0 +1,44 @@
+Taking stmd tests from the spec for benchmarking here:
+
+
+
+
+
+
+
+
+
+<33> <__>
+
+
+
+
+
+foo
+
+foo
+
+foo
+
+foo
+
+foo &<]]>
+
+
+
+
+
+
diff --git a/benchmark/samples/inline-links-flat.md b/benchmark/samples/inline-links-flat.md
new file mode 100644
index 0000000..5117db8
--- /dev/null
+++ b/benchmark/samples/inline-links-flat.md
@@ -0,0 +1,23 @@
+Valid links:
+
+ [this is a link]()
+ [this is a link]()
+ [this is a link](http://something.example.com/foo/bar 'test')
+ ![this is an image]()
+ ![this is an image]()
+ ![this is an image](http://something.example.com/foo/bar 'test')
+
+ [escape test](<\>\>\>\>\>\>\>\>\>\>\>\>\>\>> '\'\'\'\'\'\'\'\'\'\'\'\'\'\'')
+ [escape test \]\]\]\]\]\]\]\]\]\]\]\]\]\]\]\]](\)\)\)\)\)\)\)\)\)\)\)\)\)\))
+
+Invalid links:
+
+ [this is not a link
+
+ [this is not a link](
+
+ [this is not a link](http://something.example.com/foo/bar 'test'
+
+ [this is not a link](((((((((((((((((((((((((((((((((((((((((((((((
+
+ [this is not a link]((((((((((()))))))))) (((((((((()))))))))))
diff --git a/benchmark/samples/inline-links-nested.md b/benchmark/samples/inline-links-nested.md
new file mode 100644
index 0000000..85cf9b6
--- /dev/null
+++ b/benchmark/samples/inline-links-nested.md
@@ -0,0 +1,11 @@
+Valid links:
+
+[[[[[[[[](test)](test)](test)](test)](test)](test)](test)]
+
+[ [[[[[[[[[[[[[[[[[[ [](test) ]]]]]]]]]]]]]]]]]] ](test)
+
+Invalid links:
+
+[[[[[[[[[
+
+[ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [
diff --git a/benchmark/samples/inline-newlines.md b/benchmark/samples/inline-newlines.md
new file mode 100644
index 0000000..068a807
--- /dev/null
+++ b/benchmark/samples/inline-newlines.md
@@ -0,0 +1,24 @@
+
+this\
+should\
+be\
+separated\
+by\
+newlines
+
+this
+should
+be
+separated
+by
+newlines
+too
+
+this
+should
+not
+be
+separated
+by
+newlines
+
diff --git a/benchmark/samples/rawtabs.md b/benchmark/samples/rawtabs.md
new file mode 100644
index 0000000..dc989ea
--- /dev/null
+++ b/benchmark/samples/rawtabs.md
@@ -0,0 +1,18 @@
+
+this is a test for tab expansion, be careful not to replace them with spaces
+
+1 4444
+22 333
+333 22
+4444 1
+
+
+ tab-indented line
+ space-indented line
+ tab-indented line
+
+
+a lot of spaces in between here
+
+a lot of tabs in between here
+