> listextract: fail
> Failed: "listextract" failed and "fail" requested
>
+> listquote: abcd
+> listquote: ab::cd
+> listquote: ::a::b::c::d::
+> listquote: ab::::cd
+> listquote: ab:cd
+> listquote: ab;;cd
+> listquote: ab cd
+> listquote: < >
+>
> sort: 1:2:3:4
> sort: 4,3,2,1
> sort: a:aa:B:c
> domain: dom.ain
> domain: dom.ain
> domain: dom.ain
+> domain:
>
> addresses: ''abc@xyz' ''pqr@xyz
> addresses: local-part@dom.ain
> mask: 0.0.0.0/0
> Failed: missing mask value in "192.168.10.206"
> Failed: "a.b.c.d" is not an IP address
+> mask: 2a00.0002.0003.0004.0004.0000.0000.0000/79
+> mask: 2a00.0002.0003.0004.0005.0006.0007.0008/128
+> Failed: mask value too big in "2a00:2:3:4:5:6:7:8/129"
+> mask_n: 2a00:2:3:4:4::/79
> ipv6denorm: 0000:0000:0000:0000:0000:0000:0000:0001
> ipv6denorm: fe00:0000:0000:0000:0000:0000:0000:0001
> ipv6denorm: 0000:0000:0000:0000:0000:ffff:c0a8:0001
> ipv6norm: 2a00:eadf::1:0
> ipv6norm: 2a00:eadf:0:1::
> ipv6norm: 2a00::
-> ipv6norm: 2a00:2:3:4:5:6:7:8
+> ipv6norm: 2a00:2:3:4:5:6:7:8trailing_text
> nhash: 19 0/61
> lc/uc: the quick BROWN FOX
> length: The quick abc
> lclpt: local-part
> lclpt: local-part
> lclpt: local.part
+> lclpt: a.b.c
> quote: aZ09_.-Q "ab*cd" "abcd\"ef"
> quote: "nl(\n)"
> quote: "cr(\r)"
> match_domain: yes
> match_domain: no
>
-> >x@zz.aa.bb< [] >x@zz.aa.bb<
+> >x@zz.aa.bb< [zz] >x@zz.aa.bb<
>
-> >x@xxxabc< [] >x@xxxabc<
+> >x@xxxabc< [abc] >x@xxxabc<
>
> match_address: yes
> match_address: yes
> # 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
>
> >><<
> rc=0
> 1!=2
+> rc=0
+> abcd
+1234
+
> rc=0
>
> # PRVS
> escape: B7·F2ò
>
> primary_hostname: myhost.test.ex
+> sender_address: sndr@dom
> match: cdab
> Failed: "if" failed and "fail" requested
> yes
**** This is not for real!
220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 myhost.test.ex Hello test [V4NET.0.0.0]\r
250 OK\r
250 Accepted\r
354 Enter message, ending with "." on a line by itself\r
**** This is not for real!
220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 myhost.test.ex Hello test [V4NET.0.0.0]\r
250 OK\r
250 Accepted\r
354 Enter message, ending with "." on a line by itself\r
**** This is not for real!
220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 myhost.test.ex Hello test [V4NET.0.0.0]\r
250 OK\r
250 Accepted\r
354 Enter message, ending with "." on a line by itself\r
> in list
> in list
>
+> '${listextract {2} {<. my.target.host.name}}' => 'target'
+>