diff --git a/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php b/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php
index 16484f525..5ed5fec51 100644
--- a/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php
+++ b/packages/guides/src/Compiler/NodeTransformers/MenuNodeTransformers/GlobMenuEntryNodeTransformer.php
@@ -27,8 +27,9 @@
use function explode;
use function implode;
use function in_array;
+use function is_string;
use function preg_match;
-use function str_replace;
+use function preg_replace;
final class GlobMenuEntryNodeTransformer extends AbstractMenuEntryNodeTransformer
{
@@ -137,7 +138,9 @@ private static function matches(string $actualFile, GlobMenuEntryNode $parsedMen
private static function isGlob(string $documentEntryFile, string $currentPath, string $file, string $prefix, array $globExclude): bool
{
if (!in_array($documentEntryFile, $globExclude, true)) {
- $file = str_replace('*', '[^\/]*', $file);
+ $file = preg_replace('/(? 0;
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/expected/index.html b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/expected/index.html
new file mode 100644
index 000000000..7f33b6846
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/expected/index.html
@@ -0,0 +1,118 @@
+
+
+
Document Title
+
+
Lorem Ipsum Dolor.
+
+
+
+
+
+
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/index.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/index.rst
new file mode 100644
index 000000000..0f2651c64
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/index.rst
@@ -0,0 +1,10 @@
+==============
+Document Title
+==============
+
+Lorem Ipsum Dolor.
+
+.. toctree::
+ :glob:
+
+ **
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/index.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/index.rst
new file mode 100644
index 000000000..761253b85
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/index.rst
@@ -0,0 +1,8 @@
+=========
+Level 1-1
+=========
+
+Lorem Ipsum Dolor.
+
+A Definition List
+ Some definition.
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/index.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/index.rst
new file mode 100644
index 000000000..6d2c3be7c
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/index.rst
@@ -0,0 +1,5 @@
+=========
+Level 2-1
+=========
+
+A Toctree with multiple whitespaces in the directive:
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage1.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage1.rst
new file mode 100644
index 000000000..cb49d6baa
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage1.rst
@@ -0,0 +1,5 @@
+====================
+Subpage 1, Level 2-1
+====================
+
+Lorem Ipsum Dolor.
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage2.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage2.rst
new file mode 100644
index 000000000..ceea6a3d4
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-1/subpage2.rst
@@ -0,0 +1,5 @@
+====================
+Subpage 2, Level 2-1
+====================
+
+Lorem Ipsum Dolor.
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/index.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/index.rst
new file mode 100644
index 000000000..bbd7723d3
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/index.rst
@@ -0,0 +1,6 @@
+=========
+Level 2-2
+=========
+
+A Toctree with multiple whitespaces in the directive:
+
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage1.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage1.rst
new file mode 100644
index 000000000..fb4915895
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage1.rst
@@ -0,0 +1,5 @@
+====================
+Subpage 1, Level 2-2
+====================
+
+Lorem Ipsum Dolor.
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage2.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage2.rst
new file mode 100644
index 000000000..fb4915895
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/level-2-2/subpage2.rst
@@ -0,0 +1,5 @@
+====================
+Subpage 1, Level 2-2
+====================
+
+Lorem Ipsum Dolor.
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage1.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage1.rst
new file mode 100644
index 000000000..ba6aa0052
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage1.rst
@@ -0,0 +1,5 @@
+====================
+Subpage 1, Level 1-1
+====================
+
+Lorem Ipsum Dolor.
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage2.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage2.rst
new file mode 100644
index 000000000..06615899a
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-1/subpage2.rst
@@ -0,0 +1,5 @@
+====================
+Subpage 2, Level 1-1
+====================
+
+Lorem Ipsum Dolor.
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/index.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/index.rst
new file mode 100644
index 000000000..3fd821de6
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/index.rst
@@ -0,0 +1,5 @@
+=========
+Level 1-2
+=========
+
+A Toctree with multiple whitespaces in the directive:
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage1.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage1.rst
new file mode 100644
index 000000000..0371975a0
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage1.rst
@@ -0,0 +1,5 @@
+====================
+Subpage 1, Level 1-2
+====================
+
+Lorem Ipsum Dolor.
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage2.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage2.rst
new file mode 100644
index 000000000..0371975a0
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/level-1-2/subpage2.rst
@@ -0,0 +1,5 @@
+====================
+Subpage 1, Level 1-2
+====================
+
+Lorem Ipsum Dolor.
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page1.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page1.rst
new file mode 100644
index 000000000..9a1df3ce9
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page1.rst
@@ -0,0 +1,14 @@
+======
+Page 1
+======
+
+Lorem Ipsum Dolor.
+
+Page 1 Level 2
+--------------
+
+Page 1 Level 3
+~~~~~~~~~~~~~~
+
+Page 1 Level 4
+""""""""""""""
diff --git a/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page2.rst b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page2.rst
new file mode 100644
index 000000000..cdd19d739
--- /dev/null
+++ b/tests/Integration/tests/toctree/toctree-glob-deep-level-3/input/page2.rst
@@ -0,0 +1,14 @@
+======
+Page 2
+======
+
+Lorem Ipsum Dolor.
+
+Page 2 Level 2
+--------------
+
+Page 2 Level 3
+~~~~~~~~~~~~~~
+
+Page 2 Level 4
+""""""""""""""