> # lookups that are required in all cases.
>
> CALLER
+> postmaster: CALLER
>
> ==X@Y
> ==*
> ==*@Z
> ==*
>
+> x@y ==X@Y
+> * ==*
+> *@z ==*@Z
+> * ==*
+>
> data for a.b.c.d
> failed x.y.z
> data for *.p.q
> Failed: "lookup" failed and "fail" requested
> data for *
>
+> a.b.c.d: data for a.b.c.d
+> failed x.y.z
+> *.p.q: data for *.p.q
+> *.p.q: data for *.p.q
+> *.p.q: data for *.p.q
+> Failed: "lookup" failed and "fail" requested
+> *: data for *
+>
> q1: "abc"
> q2: "xyz":
> q3: "pqr" :
> q6: "white space"
> q7: "b\\s"
>
+> q1f: abc "abc"
+> q2f: xyz: "xyz":
+> q3f: pqr : "pqr" :
+> q4f: a:b "a:b" abc continued data (make sure not key)
+> q5f: "quoted" "\"quoted\""
+> q6f: white space "white space"
+> q7f: b\s "b\\s"
+>
> abc: abc
> a.b.c: *.b.c
> ab.c: *b.c
> abcd abcd
> <:abcd:> =?iso-8859-8?Q?=3C=3Aabcd=3A=3E?=
> <:ab cd:> =?iso-8859-8?Q?=3C=3Aab_cd=3A=3E?=
-> long: =?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_?= =?iso-8859-8?Q?it_will_go_over_the_75-char_limit?=
-> long: =?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_?= =?iso-8859-8?Q?it_will_go_over_the_75-char_limit_by_a_long_way=3B_in?= =?iso-8859-8?Q?_fact_this_one_will_go_over_the_150_character_limit?=
+> long: =?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_it_will_go_ov?= =?iso-8859-8?Q?er_the_75-char_limit?=
+> long: =?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_it_will_go_ov?= =?iso-8859-8?Q?er_the_75-char_limit_by_a_long_way=3B_in_fact_this_on?= =?iso-8859-8?Q?e_will_go_over_the_150_character_limit?=
>
> # RFC 2047 decode
>
> in list
> in list
>
+> '${listextract {2} {<. my.target.host.name}}' => 'target'
+>