diff --git a/common/python/nomadcore/simple_parser.py b/common/python/nomadcore/simple_parser.py
index 5e81cb116ca634e7e05775265b51fbd3dc855ad1..e7133b41f7dfe08acb28c4c088f51c31436aa6e5 100644
--- a/common/python/nomadcore/simple_parser.py
+++ b/common/python/nomadcore/simple_parser.py
@@ -636,25 +636,30 @@ class CompiledMatcher(object):
         result_dict = {}
 
         # If a separate transform function was defined in the matcher, call it
-        # and do nothing else.
+        # and ignore any named groups.
         if self.matcher.startReTransform is not None:
             self.matcher.startReTransform(parser.backend, m.groups())
         else:
-
             for k,v in sorted(m.groupdict().items()):
                 if v is None:
                     # a group may be optional (subexpression of ? or | in regex)
                     continue
                 k_converted, v_converted = self.addStrValue(parser.backend, k, v)
                 result_dict[k_converted] = v_converted
-            if self.matcher.fixedStartValues:
-                for k,v in sorted(self.matcher.fixedStartValues.items()):
-                    if k not in result_dict:
-                        v_converted = self.addValue(parser.backend, k, v)
-                        result_dict[k] = v_converted
+
+        # Emit fixed start values
+        if self.matcher.fixedStartValues:
+            for k,v in sorted(self.matcher.fixedStartValues.items()):
+                if k not in result_dict:
+                    v_converted = self.addValue(parser.backend, k, v)
+                    result_dict[k] = v_converted
+
+        # If the match needs to be forwarded, push the read line back into the
+        # file stream
         if self.matcher.forwardMatch:
             logger.debug("handleStartMatch of %s on (%s) pushing back line", self.matcher.desc(),line)
             parser.fIn.pushbackLine(line)
+
         return result_dict
 
     def handleEndMatch(self, parser):