> may be this it because of "end_offset + 1" in expr_scanner_chomp_substring ?> Why there is + 1 there?
Thanks for the debug! Here is a v9 which does a rebase after the reindentation and fixes the bad offset.
-- Fabien.