Index: src/parser/quote_expression.pir =================================================================== --- src/parser/quote_expression.pir (revision 29737) +++ src/parser/quote_expression.pir (working copy) @@ -357,7 +357,8 @@ litchar = substr target, pos, 1 ## if we've reached an escape char, we're done $I0 = index escapes, litchar - if $I0 >= 0 goto succeed + if $I0 >= 0 goto check_if_really_variable + wasnt_variable: ## if this isn't an interpolation, add the char unless optq goto add_litchar if litchar != "\\" goto add_litchar @@ -394,6 +395,14 @@ inc pos goto scan_loop + check_if_really_variable: + .local pmc action + action = options['action'] + mob.'to'(pos) + $P0 = mob.'variable'('action'=>action) + if $P0 goto succeed + goto wasnt_variable + scan_xdo: ## handle \x, \d, and \o escapes. start by converting ## the backchar into 8, 10, or 16 (yes, it's a hack