arekbulski: This is highly useful, thank you @hardkrash . :cake: 
diff --git a/construct/expr.py b/construct/expr.py
index f20c6a0..765986a 100644
--- a/construct/expr.py
+++ b/construct/expr.py
@@ -146,6 +146,8 @@ class Path(ExprMixin):
         return context2[self.__name]
     def __getattr__(self, name):
         return Path(name, self)
+    def __getitem__(self, name):
+    	return Path(name, self)
 
 this = Path("this")
 
diff --git a/docs/meta.rst b/docs/meta.rst
index fe0b125..c71afa6 100644
--- a/docs/meta.rst
+++ b/docs/meta.rst
@@ -62,13 +62,15 @@ Container(length1=49)(inner=Container(length2=50)(sum=99))
 Using `this` expression
 ===========================
 
-Certain classes take a number of elements, or something similar, and allow a callable to be provided instead. This callable is called at parsing and building, and is provided the current context object. Context is always a Container, not a dict, so it supports attribute as well as key access. Amazingly, this can get even more fancy. Tomer Filiba provided even a better syntax. The `this` singleton object can be used to build a lambda expression. All three examples below are equivalent:
+Certain classes take a number of elements, or something similar, and allow a callable to be provided instead. This callable is called at parsing and building, and is provided the current context object. Context is always a Container, not a dict, so it supports attribute as well as key access. Amazingly, this can get even more fancy. Tomer Filiba provided even a better syntax. The `this` singleton object can be used to build a lambda expression. All four examples below are equivalent:
 
 >>> lambda ctx: ctx["_"]["field"]
 ...
 >>> lambda ctx: ctx._.field
 ...
 >>> this._.field
+...
+>>> this["_"]["field"]
 
 Of course, `this` can be mixed with other calculations. When evaluating, each instance of this is replaced by ctx.
 

Support indexing on this.
Simply adding a `__getitem__` to the Path, we then have the this expression to work with `[]`

This addition allows the following expression to work.
`this['flag with spaces'] == 0`

```
diff --git a/construct/expr.py b/construct/expr.py
index f20c6a0..5a5371e 100644
--- a/construct/expr.py
+++ b/construct/expr.py
@@ -146,6 +146,8 @@ class Path(ExprMixin):
         return context2[self.__name]
     def __getattr__(self, name):
         return Path(name, self)
+    def __getitem__(self, name):
+        return Path(name, self)
```
diff --git a/tests/test_this.py b/tests/test_this.py
index 4bea240..156583a 100644
--- a/tests/test_this.py
+++ b/tests/test_this.py
@@ -31,6 +31,14 @@ class TestThis(unittest.TestCase):
         assert this_example.parse(b"\x05helloABXXXX") == Container(length=5)(value=b'hello')(nested=Container(b1=65)(b2=66)(b3=4295))(condition=1482184792)
         assert this_example.build(dict(length=5, value=b'hello', nested=dict(b1=65, b2=66), condition=1482184792)) == b"\x05helloABXXXX"
 
+    def test_this_getitem(self):
+        gi = Struct(
+            "length of text" / Int8ub,
+            "text" / Bytes(this["length of text"]),
+        )
+        assert gi.parse(b"\x06World!") == Container({"length of text": 6, "text":b"World!"})
+        assert gi.build({"length of text": 6, "text":b"World!"}) == b"\x06World!"
+
     def test_path(self):
         path = Path("path")
         x = ~((path.foo * 2 + 3 << 2) % 11)

pip install -e .
parse_log_pytest
requirements.txt
pytest pytest-cov numpy
3.6
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
certifi==2021.5.30
-e git+https://github.com/construct/construct.git@93fee38c2f17a10cdd35aa5db13ec1eb4a4bb517#egg=construct
coverage==6.2
importlib-metadata==4.8.3
iniconfig==1.1.1
numpy==1.19.5
packaging==21.3
pluggy==1.0.0
py==1.11.0
pyparsing==3.1.4
pytest==7.0.1
pytest-cov==4.0.0
tomli==1.2.3
typing_extensions==4.1.1
zipp==3.6.0

name: construct
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - coverage==6.2
      - importlib-metadata==4.8.3
      - iniconfig==1.1.1
      - numpy==1.19.5
      - packaging==21.3
      - pluggy==1.0.0
      - py==1.11.0
      - pyparsing==3.1.4
      - pytest==7.0.1
      - pytest-cov==4.0.0
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - zipp==3.6.0
prefix: /opt/conda/envs/construct

tests/test_this.py::TestThis::test_this_getitem
tests/test_this.py::TestThis::test_functions tests/test_this.py::TestThis::test_obj tests/test_this.py::TestThis::test_path tests/test_this.py::TestThis::test_singletons tests/test_this.py::TestThis::test_this
construct/expr.py docs/meta.rst
construct/expr.py docs/meta.rst