Fix matching of long addresses. Bug 2677
[exim.git] / test / stderr / 0471
index 3a5aa1c7bd0563d531f27ee94754d8d76b7c3391..8fd0a8660b887fc6f21b336832ab72261389d7bf 100644 (file)
@@ -98,53 +98,57 @@ To: random@test.example,
  
 **** debug string too long - truncated ****
 
  
 **** debug string too long - truncated ****
 
+address match test: subject=r1@test.ex pattern=^.{40,}@*
+r1@test.ex in "^.{40,}@*"? no (end of list)
 address match test: subject=r1@test.ex pattern=*@*
 test.ex in "*"? yes (matched "*")
 r1@test.ex in "*@*"? yes (matched "*@*")
 address match test: subject=r1@test.ex pattern=*@*
 test.ex in "*"? yes (matched "*")
 r1@test.ex in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.ex" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.ex"
-file lookup required for test.ex
-  in TESTSUITE/aux-fixed/0471.rw
-lookup failed
-trying partial match *.test.ex
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="*.test.ex"
-file lookup required for *.test.ex
-  in TESTSUITE/aux-fixed/0471.rw
-lookup failed
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.ex" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.ex" opts=NULL
+ file lookup required for test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.test.ex" opts=NULL
+ file lookup required for *.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+address match test: subject=CALLER@myhost.test.ex pattern=^.{40,}@*
+CALLER@myhost.test.ex in "^.{40,}@*"? no (end of list)
 address match test: subject=CALLER@myhost.test.ex pattern=*@*
 myhost.test.ex in "*"? yes (matched "*")
 CALLER@myhost.test.ex in "*@*"? yes (matched "*@*")
 address match test: subject=CALLER@myhost.test.ex pattern=*@*
 myhost.test.ex in "*"? yes (matched "*")
 CALLER@myhost.test.ex in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="myhost.test.ex" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="myhost.test.ex"
-file lookup required for myhost.test.ex
-  in TESTSUITE/aux-fixed/0471.rw
-lookup failed
-trying partial match *.myhost.test.ex
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="*.myhost.test.ex"
-file lookup required for *.myhost.test.ex
-  in TESTSUITE/aux-fixed/0471.rw
-lookup failed
-trying partial match *.test.ex
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="*.test.ex"
-cached data used for lookup of *.test.ex
-  in TESTSUITE/aux-fixed/0471.rw
-lookup failed
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="myhost.test.ex" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="myhost.test.ex" opts=NULL
+ file lookup required for myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.myhost.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.myhost.test.ex" opts=NULL
+ file lookup required for *.myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.test.ex" opts=NULL
+ cached data used for lookup of *.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
 rewritten sender = CALLER@myhost.test.ex
 rewrite_one_header: type=T:
   To: random@test.example,
 rewritten sender = CALLER@myhost.test.ex
 rewrite_one_header: type=T:
   To: random@test.example,
@@ -227,23 +231,25 @@ rewrite_one_header: type=T:
     random@test.example,
     random@test.examp
 **** debug string too long - truncated ****
     random@test.example,
     random@test.examp
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-file lookup required for test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ file lookup required for test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4051 newtype=T newtext:
 To: random@rwtest.example,
     random@test.example,
 newlen=4051 newtype=T newtext:
 To: random@rwtest.example,
     random@test.example,
@@ -406,23 +412,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4053 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4053 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -585,23 +593,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4055 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4055 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -764,23 +774,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4057 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4057 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -943,23 +955,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4059 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4059 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -1122,23 +1136,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4061 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4061 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -1301,23 +1317,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4063 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4063 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -1480,23 +1498,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4065 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4065 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -1659,23 +1679,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4067 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4067 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -1838,23 +1860,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4069 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4069 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -2016,23 +2040,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4071 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4071 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -2194,23 +2220,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4073 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4073 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -2372,23 +2400,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4075 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4075 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -2550,23 +2580,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4077 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4077 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -2728,23 +2760,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4079 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4079 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -2906,23 +2940,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4081 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4081 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -3084,23 +3120,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4083 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4083 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -3262,23 +3300,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4085 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4085 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -3440,23 +3480,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4087 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4087 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -3618,23 +3660,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4089 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4089 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -3796,23 +3840,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4091 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4091 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -3974,23 +4020,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4093 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4093 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -4152,23 +4200,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4095 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4095 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -4329,23 +4379,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4097 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4097 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -4506,23 +4558,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4099 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4099 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -4683,23 +4737,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4101 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4101 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -4860,23 +4916,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4103 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4103 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -5037,23 +5095,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4105 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4105 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -5214,23 +5274,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4107 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4107 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -5391,23 +5453,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4109 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4109 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -5568,23 +5632,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4111 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4111 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -5745,23 +5811,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4113 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4113 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -5922,23 +5990,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4115 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4115 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -6099,23 +6169,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4117 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4117 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -6276,23 +6348,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4119 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4119 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -6452,23 +6526,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4121 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4121 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -6628,23 +6704,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4123 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4123 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -6804,23 +6882,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4125 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4125 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -6980,23 +7060,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4127 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4127 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -7156,23 +7238,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4129 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4129 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -7332,23 +7416,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4131 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4131 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -7508,23 +7594,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4133 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4133 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -7684,23 +7772,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4135 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4135 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -7860,23 +7950,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4137 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4137 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -8036,23 +8128,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4139 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4139 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -8212,23 +8306,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4141 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4141 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -8388,23 +8484,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4143 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4143 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -8564,23 +8662,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4145 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4145 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -8739,23 +8839,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4147 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4147 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -8914,23 +9016,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4149 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4149 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -9089,23 +9193,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4151 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4151 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -9264,23 +9370,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4153 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4153 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -9439,23 +9547,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4155 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4155 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -9614,23 +9724,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4157 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4157 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -9789,23 +9901,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4159 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4159 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -9964,23 +10078,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4161 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4161 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -10139,23 +10255,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4163 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4163 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -10314,23 +10432,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4165 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4165 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -10489,23 +10609,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4167 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4167 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -10664,23 +10786,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4169 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4169 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -10838,23 +10962,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4171 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4171 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -11012,23 +11138,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4173 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4173 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -11186,23 +11314,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4175 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4175 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -11360,23 +11490,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4177 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4177 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -11534,23 +11666,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4179 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4179 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -11708,23 +11842,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4181 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4181 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -11882,23 +12018,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4183 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4183 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -12056,23 +12194,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4185 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4185 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -12230,23 +12370,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4187 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4187 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -12404,23 +12546,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4189 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4189 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -12578,23 +12722,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4191 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4191 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -12752,23 +12898,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4193 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4193 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -12926,23 +13074,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4195 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4195 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -13099,23 +13249,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4197 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4197 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -13272,23 +13424,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4199 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4199 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -13445,23 +13599,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4201 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4201 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -13618,23 +13774,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4203 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4203 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -13791,23 +13949,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4205 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4205 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -13964,23 +14124,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4207 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4207 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -14137,23 +14299,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4209 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4209 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -14310,23 +14474,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
     random@test.example,
     random@test.exa
 **** debug string too long - truncated ****
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4211 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4211 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -14483,23 +14649,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4213 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4213 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -14655,23 +14823,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4215 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4215 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -14826,23 +14996,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4217 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4217 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -14996,23 +15168,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4219 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4219 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -15165,23 +15339,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4221 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4221 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -15333,23 +15509,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4223 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4223 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -15500,23 +15678,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4225 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4225 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -15666,23 +15846,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4227 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4227 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -15831,23 +16013,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4229 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4229 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -15995,23 +16179,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4231 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4231 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -16158,23 +16344,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4233 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4233 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -16320,23 +16508,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4235 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4235 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -16481,23 +16671,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4237 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4237 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -16641,23 +16833,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4239 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4239 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -16800,23 +16994,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4241 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4241 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -16958,23 +17154,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4243 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4243 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -17115,23 +17313,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4245 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4245 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -17271,23 +17471,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4247 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4247 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -17426,23 +17628,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4249 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4249 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -17580,23 +17784,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4251 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4251 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -17733,23 +17939,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4253 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4253 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -17885,23 +18093,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4255 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4255 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -18036,23 +18246,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4257 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4257 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -18186,23 +18398,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4259 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4259 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -18335,23 +18549,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4261 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4261 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -18483,23 +18699,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4263 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4263 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -18630,23 +18848,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4265 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4265 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -18776,23 +18996,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4267 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4267 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -18921,23 +19143,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4269 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4269 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -19065,23 +19289,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4271 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4271 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -19208,23 +19434,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4273 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4273 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -19350,23 +19578,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4275 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4275 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -19491,23 +19721,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4277 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4277 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -19631,23 +19863,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4279 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4279 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -19770,23 +20004,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4281 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4281 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -19908,23 +20144,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4283 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4283 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -20045,23 +20283,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4285 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4285 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -20181,23 +20421,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4287 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4287 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -20316,23 +20558,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4289 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4289 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -20450,23 +20694,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4291 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4291 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -20583,23 +20829,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4293 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4293 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -20715,23 +20963,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4295 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4295 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -20846,23 +21096,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4297 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4297 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -20976,23 +21228,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4299 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4299 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -21105,23 +21359,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4301 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4301 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -21233,23 +21489,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4303 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4303 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -21360,23 +21618,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4305 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4305 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -21486,23 +21746,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4307 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4307 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -21611,23 +21873,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4309 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4309 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -21735,23 +21999,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4311 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4311 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -21858,23 +22124,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4313 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4313 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -21980,23 +22248,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4315 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4315 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -22101,23 +22371,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4317 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4317 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -22221,23 +22493,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4319 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4319 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -22340,23 +22614,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4321 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4321 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -22458,23 +22734,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4323 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4323 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -22575,23 +22853,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4325 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4325 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -22691,23 +22971,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4327 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4327 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -22806,23 +23088,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4329 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4329 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -22920,23 +23204,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4331 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4331 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -23033,23 +23319,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4333 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4333 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -23145,23 +23433,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4335 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4335 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -23256,23 +23546,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4337 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4337 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -23366,23 +23658,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4339 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4339 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -23475,23 +23769,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4341 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4341 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -23583,23 +23879,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4343 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4343 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -23690,23 +23988,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4345 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4345 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -23796,23 +24096,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4347 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4347 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -23901,23 +24203,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4349 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4349 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -24005,23 +24309,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4351 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4351 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -24108,23 +24414,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4353 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4353 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -24210,23 +24518,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4355 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4355 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -24311,23 +24621,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4357 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4357 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -24411,23 +24723,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4359 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4359 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -24510,23 +24824,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4361 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4361 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -24608,23 +24924,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4363 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4363 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -24705,23 +25023,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4365 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4365 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -24801,23 +25121,25 @@ remainder: random@test.example,
     random@test.example,
     random@test.example,
     random@test.example
     random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4367 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4367 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -24896,23 +25218,25 @@ To: random@rwtest.example,
 remainder: random@test.example,
     random@test.example,
     random@test.example
 remainder: random@test.example,
     random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4369 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4369 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -24990,23 +25314,25 @@ To: random@rwtest.example,
 **** debug string too long - truncated ****
 remainder: random@test.example,
     random@test.example
 **** debug string too long - truncated ****
 remainder: random@test.example,
     random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4371 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4371 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -25083,23 +25409,25 @@ To: random@rwtest.example,
     random@rwtest.example,
 **** debug string too long - truncated ****
 remainder: random@test.example
     random@rwtest.example,
 **** debug string too long - truncated ****
 remainder: random@test.example
+address match test: subject=random@test.example pattern=^.{40,}@*
+random@test.example in "^.{40,}@*"? no (end of list)
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
 address match test: subject=random@test.example pattern=*@*
 test.example in "*"? yes (matched "*")
 random@test.example in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="test.example" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="test.example"
-cached data used for lookup of test.example
-  in TESTSUITE/aux-fixed/0471.rw
-lookup yielded: rwtest.example
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ cached data used for lookup of test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
 LOG: address_rewrite MAIN
 LOG: address_rewrite MAIN
-  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 1
+  "random@test.example" from to: rewritten as "random@rwtest.example" by rule 2
 newlen=4373 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
 newlen=4373 newtype=T newtext:
 To: random@rwtest.example,
     random@rwtest.example,
@@ -25178,33 +25506,35 @@ To: random@rwtest.example,
 remainder: 
 rewrite_one_header: type=F:
   From: CALLER_NAME <CALLER@myhost.test.ex>
 remainder: 
 rewrite_one_header: type=F:
   From: CALLER_NAME <CALLER@myhost.test.ex>
+address match test: subject=CALLER@myhost.test.ex pattern=^.{40,}@*
+CALLER@myhost.test.ex in "^.{40,}@*"? no (end of list)
 address match test: subject=CALLER@myhost.test.ex pattern=*@*
 myhost.test.ex in "*"? yes (matched "*")
 CALLER@myhost.test.ex in "*@*"? yes (matched "*@*")
 address match test: subject=CALLER@myhost.test.ex pattern=*@*
 myhost.test.ex in "*"? yes (matched "*")
 CALLER@myhost.test.ex in "*@*"? yes (matched "*@*")
-search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
-  cached open
-search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  key="myhost.test.ex" partial=2 affix=*. starflags=0
-LRU list:
-  0TESTSUITE/aux-fixed/0471.rw
-  End
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="myhost.test.ex"
-cached data used for lookup of myhost.test.ex
-  in TESTSUITE/aux-fixed/0471.rw
-lookup failed
-trying partial match *.myhost.test.ex
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="*.myhost.test.ex"
-cached data used for lookup of *.myhost.test.ex
-  in TESTSUITE/aux-fixed/0471.rw
-lookup failed
-trying partial match *.test.ex
-internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
-  type=lsearch key="*.test.ex"
-cached data used for lookup of *.test.ex
-  in TESTSUITE/aux-fixed/0471.rw
-lookup failed
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="myhost.test.ex" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="myhost.test.ex" opts=NULL
+ cached data used for lookup of myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.myhost.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.myhost.test.ex" opts=NULL
+ cached data used for lookup of *.myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.test.ex" opts=NULL
+ cached data used for lookup of *.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
 search_tidyup called
 >>Headers after rewriting and local additions:
 * To: random@test.example,
 search_tidyup called
 >>Headers after rewriting and local additions:
 * To: random@test.example,
@@ -25375,15 +25705,314 @@ P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
        (envelope-from <CALLER@myhost.test.ex>)
        id 10HmaX-0005vi-00
        for r1@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
        (envelope-from <CALLER@myhost.test.ex>)
        id 10HmaX-0005vi-00
        for r1@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Writing spool header file: TESTSUITE/spool//input//hdr.pppp
-DSN: Write SPOOL :-dsn_envid NULL
-DSN: Write SPOOL :-dsn_ret 0
-DSN: Flags :0
-DSN: **** SPOOL_OUT - address: |r1@test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00
+DSN: **** SPOOL_OUT - address: <r1@test.ex> errorsto: <NULL> orcpt: <NULL> dsn_flags: 0x0
 Renaming spool header file: TESTSUITE/spool//input//10HmaX-0005vi-00-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
 search_tidyup called
 Renaming spool header file: TESTSUITE/spool//input//10HmaX-0005vi-00-H
 Size of headers = sss
 LOG: MAIN
   <= CALLER@myhost.test.ex U=CALLER P=local S=sss
 created log directory TESTSUITE/spool/log
 search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+>>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+changed uid/gid: forcing real = effective
+  uid=uuuu gid=CALLER_GID pid=pppp
+configuration file is TESTSUITE/test-config
+admin user
+changed uid/gid: privilege not needed
+  uid=EXIM_UID gid=EXIM_GID pid=pppp
+originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
+sender address = CALLER@myhost.test.ex
+set_process_info: pppp accepting a local non-SMTP message from <CALLER@myhost.test.ex>
+spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
+log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
+Sender: CALLER@myhost.test.ex
+Recipients:
+  r2@test.ex
+search_tidyup called
+>>Headers received:
+To: localpart_with_056_chars_56789012345678901234567890123456@test.example
+
+address match test: subject=r2@test.ex pattern=^.{40,}@*
+r2@test.ex in "^.{40,}@*"? no (end of list)
+address match test: subject=r2@test.ex pattern=*@*
+test.ex in "*"? yes (matched "*")
+r2@test.ex in "*@*"? yes (matched "*@*")
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.ex" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.ex" opts=NULL
+ file lookup required for test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.test.ex" opts=NULL
+ file lookup required for *.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+address match test: subject=CALLER@myhost.test.ex pattern=^.{40,}@*
+CALLER@myhost.test.ex in "^.{40,}@*"? no (end of list)
+address match test: subject=CALLER@myhost.test.ex pattern=*@*
+myhost.test.ex in "*"? yes (matched "*")
+CALLER@myhost.test.ex in "*@*"? yes (matched "*@*")
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="myhost.test.ex" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="myhost.test.ex" opts=NULL
+ file lookup required for myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.myhost.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.myhost.test.ex" opts=NULL
+ file lookup required for *.myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.test.ex" opts=NULL
+ cached data used for lookup of *.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+rewritten sender = CALLER@myhost.test.ex
+rewrite_one_header: type=T:
+  To: localpart_with_056_chars_56789012345678901234567890123456@test.example
+address match test: subject=localpart_with_056_chars_56789012345678901234567890123456@test.example pattern=^.{40,}@*
+localpart_with_056_chars_56789012345678901234567890123456@test.example in "^.{40,}@*"? yes (matched "^.{40,}@*")
+LOG: address_rewrite MAIN
+  "localpart_with_056_chars_56789012345678901234567890123456@test.example" from to: rewritten as "deny_me@test.example" by rule 1
+address match test: subject=deny_me@test.example pattern=*@*
+test.example in "*"? yes (matched "*")
+deny_me@test.example in "*@*"? yes (matched "*@*")
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ file lookup required for test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
+LOG: address_rewrite MAIN
+  "deny_me@test.example" from to: rewritten as "deny_me@rwtest.example" by rule 2
+newlen=27 newtype=T newtext:
+To: deny_me@rwtest.example
+remainder: 
+rewrite_one_header: type=F:
+  From: CALLER_NAME <CALLER@myhost.test.ex>
+address match test: subject=CALLER@myhost.test.ex pattern=^.{40,}@*
+CALLER@myhost.test.ex in "^.{40,}@*"? no (end of list)
+address match test: subject=CALLER@myhost.test.ex pattern=*@*
+myhost.test.ex in "*"? yes (matched "*")
+CALLER@myhost.test.ex in "*@*"? yes (matched "*@*")
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="myhost.test.ex" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="myhost.test.ex" opts=NULL
+ cached data used for lookup of myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.myhost.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.myhost.test.ex" opts=NULL
+ cached data used for lookup of *.myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.test.ex" opts=NULL
+ cached data used for lookup of *.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+search_tidyup called
+>>Headers after rewriting and local additions:
+* To: localpart_with_056_chars_56789012345678901234567890123456@test.example
+T To: deny_me@rwtest.example
+I Message-Id: <E10HmaY-0005vi-00@myhost.test.ex>
+F From: CALLER_NAME <CALLER@myhost.test.ex>
+  Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+Data file name: TESTSUITE/spool//input//10HmaY-0005vi-00-D
+Data file written for message 10HmaY-0005vi-00
+>>Generated Received: header line
+P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
+       (envelope-from <CALLER@myhost.test.ex>)
+       id 10HmaY-0005vi-00
+       for r2@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaY-0005vi-00
+DSN: **** SPOOL_OUT - address: <r2@test.ex> errorsto: <NULL> orcpt: <NULL> dsn_flags: 0x0
+Renaming spool header file: TESTSUITE/spool//input//10HmaY-0005vi-00-H
+Size of headers = sss
+LOG: MAIN
+  <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+search_tidyup called
+>>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+changed uid/gid: forcing real = effective
+  uid=uuuu gid=CALLER_GID pid=pppp
+configuration file is TESTSUITE/test-config
+admin user
+changed uid/gid: privilege not needed
+  uid=EXIM_UID gid=EXIM_GID pid=pppp
+originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
+sender address = CALLER@myhost.test.ex
+set_process_info: pppp accepting a local non-SMTP message from <CALLER@myhost.test.ex>
+spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
+log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
+Sender: CALLER@myhost.test.ex
+Recipients:
+  r3@test.ex
+search_tidyup called
+>>Headers received:
+To: localpart_with_256_chars_5678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456@test.example
+
+address match test: subject=r3@test.ex pattern=^.{40,}@*
+r3@test.ex in "^.{40,}@*"? no (end of list)
+address match test: subject=r3@test.ex pattern=*@*
+test.ex in "*"? yes (matched "*")
+r3@test.ex in "*@*"? yes (matched "*@*")
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.ex" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.ex" opts=NULL
+ file lookup required for test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.test.ex" opts=NULL
+ file lookup required for *.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+address match test: subject=CALLER@myhost.test.ex pattern=^.{40,}@*
+CALLER@myhost.test.ex in "^.{40,}@*"? no (end of list)
+address match test: subject=CALLER@myhost.test.ex pattern=*@*
+myhost.test.ex in "*"? yes (matched "*")
+CALLER@myhost.test.ex in "*@*"? yes (matched "*@*")
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="myhost.test.ex" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="myhost.test.ex" opts=NULL
+ file lookup required for myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.myhost.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.myhost.test.ex" opts=NULL
+ file lookup required for *.myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.test.ex" opts=NULL
+ cached data used for lookup of *.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+rewritten sender = CALLER@myhost.test.ex
+rewrite_one_header: type=T:
+  To: localpart_with_256_chars_5678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456@test.example
+address match test: subject=localpart_with_256_chars_5678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456@test.example pattern=^.{40,}@*
+localpart_with_256_chars_5678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456@test.example in "^.{40,}@*"? yes (matched "^.{40,}@*")
+LOG: address_rewrite MAIN
+  "localpart_with_256_chars_5678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456@test.example" from to: rewritten as "deny_me@test.example" by rule 1
+address match test: subject=deny_me@test.example pattern=*@*
+test.example in "*"? yes (matched "*")
+deny_me@test.example in "*@*"? yes (matched "*@*")
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="test.example" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="test.example" opts=NULL
+ file lookup required for test.example
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup yielded: rwtest.example
+LOG: address_rewrite MAIN
+  "deny_me@test.example" from to: rewritten as "deny_me@rwtest.example" by rule 2
+newlen=27 newtype=T newtext:
+To: deny_me@rwtest.example
+remainder: 
+rewrite_one_header: type=F:
+  From: CALLER_NAME <CALLER@myhost.test.ex>
+address match test: subject=CALLER@myhost.test.ex pattern=^.{40,}@*
+CALLER@myhost.test.ex in "^.{40,}@*"? no (end of list)
+address match test: subject=CALLER@myhost.test.ex pattern=*@*
+myhost.test.ex in "*"? yes (matched "*")
+CALLER@myhost.test.ex in "*@*"? yes (matched "*@*")
+ search_open: lsearch "TESTSUITE/aux-fixed/0471.rw"
+   cached open
+ search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   key="myhost.test.ex" partial=2 affix=*. starflags=0 opts=NULL
+ LRU list:
+   0TESTSUITE/aux-fixed/0471.rw
+   End
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="myhost.test.ex" opts=NULL
+ cached data used for lookup of myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.myhost.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.myhost.test.ex" opts=NULL
+ cached data used for lookup of *.myhost.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+ trying partial match *.test.ex
+ internal_search_find: file="TESTSUITE/aux-fixed/0471.rw"
+   type=lsearch key="*.test.ex" opts=NULL
+ cached data used for lookup of *.test.ex
+   in TESTSUITE/aux-fixed/0471.rw
+ lookup failed
+search_tidyup called
+>>Headers after rewriting and local additions:
+* To: localpart_with_256_chars_5678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456@test.example
+T To: deny_me@rwtest.example
+I Message-Id: <E10HmaZ-0005vi-00@myhost.test.ex>
+F From: CALLER_NAME <CALLER@myhost.test.ex>
+  Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+Data file name: TESTSUITE/spool//input//10HmaZ-0005vi-00-D
+Data file written for message 10HmaZ-0005vi-00
+>>Generated Received: header line
+P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
+       (envelope-from <CALLER@myhost.test.ex>)
+       id 10HmaZ-0005vi-00
+       for r3@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+Writing spool header file: TESTSUITE/spool//input//hdr.10HmaZ-0005vi-00
+DSN: **** SPOOL_OUT - address: <r3@test.ex> errorsto: <NULL> orcpt: <NULL> dsn_flags: 0x0
+Renaming spool header file: TESTSUITE/spool//input//10HmaZ-0005vi-00-H
+Size of headers = sss
+LOG: MAIN
+  <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+search_tidyup called
+>>>>>>>>>>>>>>>> Exim pid=pppp (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>