In exim 3.36 I had a smartuser driver that had the following condition:
require_files = \
${extract{3}{:}{\
${lookup{$domain}dbmnz{/path/to/file.db}{$value}}\
}}/${substr_0_1:${lc:$local_part}}/${lc:$local_part}/vacation
which worked great. I ran it through the convert4r4 script included with
exim-4.12, and it changed the rule to this:
require_files = \
${extract{3}{:}{\
${lookup{$domain}dbmnz{/path/to/file.db}{$value}}\
}}/${substr_0_1::${lc::$local_part}}/${lc::$local_part}/vacation
Note that it doubled the colons where they occurred in an expansion
operator, but not where it was standing as an extraction delimeter.
Before you tell me to RTFM, I saw the "require_files" warning that was
spit out on STDERR, I just thought maybe the script could be expanded to
look for something like this. =)
--John