diff --git a/examples/subcases_and_bdd/CMakeLists.txt b/examples/subcases_and_bdd/CMakeLists.txt
new file mode 100644
index 0000000..5ce5ce1
--- /dev/null
+++ b/examples/subcases_and_bdd/CMakeLists.txt
@@ -0,0 +1,12 @@
+cmake_minimum_required(VERSION 2.8)
+
+get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME)
+project(${PROJECT_NAME})
+
+include(../../scripts/common.cmake)
+
+include_directories("../../doctest/")
+
+add_executable(${PROJECT_NAME} main.cpp)
+
+add_test(NAME ${PROJECT_NAME} COMMAND $<TARGET_FILE:${PROJECT_NAME}>)
diff --git a/examples/subcases_and_bdd/main.cpp b/examples/subcases_and_bdd/main.cpp
new file mode 100644
index 0000000..1cf4b3b
--- /dev/null
+++ b/examples/subcases_and_bdd/main.cpp
@@ -0,0 +1,70 @@
+#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+#include "doctest.h"
+
+#include <iostream>
+#include <vector>
+using namespace std;
+
+TEST_CASE("lots of nested subcases") {
+    cout << endl << "root" << endl;
+    SUBCASE("") {
+        cout << "1" << endl;
+        SUBCASE("") { cout << "1.1" << endl; }
+    }
+    SUBCASE("") {   
+        cout << "2" << endl;
+        SUBCASE("") { cout << "2.1" << endl; }
+        SUBCASE("") {
+            cout << "2.2" << endl;
+            SUBCASE("") {
+                cout << "2.2.1" << endl;
+                SUBCASE("") { cout << "2.2.1.1" << endl; }
+                SUBCASE("") { cout << "2.2.1.2" << endl; }
+            }
+        }
+        SUBCASE("") { cout << "2.3" << endl; }
+        SUBCASE("") { cout << "2.4" << endl; }
+    }
+}
+
+SCENARIO("vectors can be sized and resized") {
+    GIVEN("A vector with some items") {
+        std::vector<int> v(5);
+
+        REQUIRE(v.size() == 5u);
+        REQUIRE(v.capacity() >= 5u);
+
+        WHEN("the size is increased") {
+            v.resize(10u);
+
+            THEN("the size and capacity change") {
+                CHECK(v.size() == 20u);
+                CHECK(v.capacity() >= 10u);
+            }
+        }
+        WHEN("the size is reduced") {
+            v.resize(0);
+
+            THEN("the size changes but not capacity") {
+                CHECK(v.size() == 0u);
+                CHECK(v.capacity() >= 5u);
+            }
+        }
+        WHEN("more capacity is reserved") {
+            v.reserve(10);
+
+            THEN("the capacity changes but not the size") {
+                CHECK(v.size() == 5u);
+                CHECK(v.capacity() >= 10u);
+            }
+        }
+        WHEN("less capacity is reserved") {
+            v.reserve(0);
+
+            THEN("neither size nor capacity are changed") {
+                CHECK(v.size() == 10u);
+                CHECK(v.capacity() >= 5u);
+            }
+        }
+    }
+}
\ No newline at end of file
