Root cause: lexer strips quotes from m["my key"] but inserts char(1)
sentinel at quote boundaries, storing key as "my key\x01". Expansion
path for ${m["my key"]} strips quotes via strip_quotes() producing
"my key" (no sentinel). Key mismatch caused lookup to fail.