%% %% %CopyrightBegin% %% %% Copyright Ericsson AB 2008-2019. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. %% You may obtain a copy of the License at %% %% http://www.apache.org/licenses/LICENSE-2.0 %% %% Unless required by applicable law or agreed to in writing, software %% distributed under the License is distributed on an "AS IS" BASIS, %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %% See the License for the specific language governing permissions and %% limitations under the License. %% %% %CopyrightEnd% %% -module(re_testoutput1_split_test). -export([run/0]). -compile(no_native). %% This file is generated by running run_pcre_tests:gen_split_test("re_SUITE_data/testoutput1") join([]) -> []; join([A]) -> [A]; join([H|T]) -> [H,<<":">>|join(T)]. run() -> run0(), run1(), run2(), run3(), run4(), run5(), run6(), run7(), run8(), run9(), run10(), run11(), run12(), run13(), run14(), run15(), run16(), run17(), run18(), run19(), run20(), run21(), run22(), run23(), run24(), run25(), run26(), run27(), run28(), run29(), run30(), run31(), run32(), run33(), run34(), run35(), run36(), run37(), run38(), run39(), run40(), run41(), run42(), run43(), run44(), run45(), run46(), run47(), run48(), run49(), run50(), run51(), run52(), run53(), run54(), run55(), run56(), ok. run0() -> <<"">> = iolist_to_binary(join(re:split("the quick brown fox","the quick brown fox",[trim]))), <<":">> = iolist_to_binary(join(re:split("the quick brown fox","the quick brown fox",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("the quick brown fox","the quick brown fox",[]))), <<"The quick brown FOX">> = iolist_to_binary(join(re:split("The quick brown FOX","the quick brown fox",[trim]))), <<"The quick brown FOX">> = iolist_to_binary(join(re:split("The quick brown FOX","the quick brown fox",[{parts, 2}]))), <<"The quick brown FOX">> = iolist_to_binary(join(re:split("The quick brown FOX","the quick brown fox",[]))), <<"What do you know about :?">> = iolist_to_binary(join(re:split("What do you know about the quick brown fox?","the quick brown fox",[trim]))), <<"What do you know about :?">> = iolist_to_binary(join(re:split("What do you know about the quick brown fox?","the quick brown fox",[{parts, 2}]))), <<"What do you know about :?">> = iolist_to_binary(join(re:split("What do you know about the quick brown fox?","the quick brown fox",[]))), <<"What do you know about THE QUICK BROWN FOX?">> = iolist_to_binary(join(re:split("What do you know about THE QUICK BROWN FOX?","the quick brown fox",[trim]))), <<"What do you know about THE QUICK BROWN FOX?">> = iolist_to_binary(join(re:split("What do you know about THE QUICK BROWN FOX?","the quick brown fox",[{parts, 2}]))), <<"What do you know about THE QUICK BROWN FOX?">> = iolist_to_binary(join(re:split("What do you know about THE QUICK BROWN FOX?","the quick brown fox",[]))), <<"">> = iolist_to_binary(join(re:split("the quick brown fox","The quick brown fox",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("the quick brown fox","The quick brown fox",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("the quick brown fox","The quick brown fox",[caseless]))), <<"">> = iolist_to_binary(join(re:split("The quick brown FOX","The quick brown fox",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("The quick brown FOX","The quick brown fox",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("The quick brown FOX","The quick brown fox",[caseless]))), <<"What do you know about :?">> = iolist_to_binary(join(re:split("What do you know about the quick brown fox?","The quick brown fox",[caseless, trim]))), <<"What do you know about :?">> = iolist_to_binary(join(re:split("What do you know about the quick brown fox?","The quick brown fox",[caseless, {parts, 2}]))), <<"What do you know about :?">> = iolist_to_binary(join(re:split("What do you know about the quick brown fox?","The quick brown fox",[caseless]))), <<"What do you know about :?">> = iolist_to_binary(join(re:split("What do you know about THE QUICK BROWN FOX?","The quick brown fox",[caseless, trim]))), <<"What do you know about :?">> = iolist_to_binary(join(re:split("What do you know about THE QUICK BROWN FOX?","The quick brown fox",[caseless, {parts, 2}]))), <<"What do you know about :?">> = iolist_to_binary(join(re:split("What do you know about THE QUICK BROWN FOX?","The quick brown fox",[caseless]))), <<"">> = iolist_to_binary(join(re:split("abcd 9;$\\?caxyz","abcd\\t\\n\\r\\f\\a\\e\\071\\x3b\\$\\\\\\?caxyz",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcd 9;$\\?caxyz","abcd\\t\\n\\r\\f\\a\\e\\071\\x3b\\$\\\\\\?caxyz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcd 9;$\\?caxyz","abcd\\t\\n\\r\\f\\a\\e\\071\\x3b\\$\\\\\\?caxyz",[]))), <<"">> = iolist_to_binary(join(re:split("abxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("abxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("abxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("abxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("abcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aabcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aabcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aabcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaaabcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaabcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaabcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("abxyzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("abxyzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abxyzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aabxyzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aabxyzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aabxyzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaaabxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaabxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaabxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("abcxyzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcxyzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcxyzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aabcxyzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aabcxyzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aabcxyzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabcxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypABzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypABzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypABzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypABBzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypABBzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypABBzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<">>>">> = iolist_to_binary(join(re:split(">>>aaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<">>>:">> = iolist_to_binary(join(re:split(">>>aaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<">>>:">> = iolist_to_binary(join(re:split(">>>aaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<">">> = iolist_to_binary(join(re:split(">aaaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<">:">> = iolist_to_binary(join(re:split(">aaaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<">:">> = iolist_to_binary(join(re:split(">aaaabxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<">>>>">> = iolist_to_binary(join(re:split(">>>>abcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<">>>>:">> = iolist_to_binary(join(re:split(">>>>abcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<">>>>:">> = iolist_to_binary(join(re:split(">>>>abcxyzpqrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"abxyzpqrrabbxyyyypqAzz">> = iolist_to_binary(join(re:split("abxyzpqrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<"abxyzpqrrabbxyyyypqAzz">> = iolist_to_binary(join(re:split("abxyzpqrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<"abxyzpqrrabbxyyyypqAzz">> = iolist_to_binary(join(re:split("abxyzpqrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"abxyzpqrrrrabbxyyyypqAzz">> = iolist_to_binary(join(re:split("abxyzpqrrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<"abxyzpqrrrrabbxyyyypqAzz">> = iolist_to_binary(join(re:split("abxyzpqrrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<"abxyzpqrrrrabbxyyyypqAzz">> = iolist_to_binary(join(re:split("abxyzpqrrrrabbxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"abxyzpqrrrabxyyyypqAzz">> = iolist_to_binary(join(re:split("abxyzpqrrrabxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<"abxyzpqrrrabxyyyypqAzz">> = iolist_to_binary(join(re:split("abxyzpqrrrabxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<"abxyzpqrrrabxyyyypqAzz">> = iolist_to_binary(join(re:split("abxyzpqrrrabxyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<"aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<"aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"aaaabcxyzzzzpqrrrabbbxyyypqAzz">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<"aaaabcxyzzzzpqrrrabbbxyyypqAzz">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<"aaaabcxyzzzzpqrrrabbbxyyypqAzz">> = iolist_to_binary(join(re:split("aaaabcxyzzzzpqrrrabbbxyyypqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<"aaabcxyzpqrrrabbxyyyypqqqqqqqAzz">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[trim]))), <<"aaabcxyzpqrrrabbxyyyypqqqqqqqAzz">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[{parts, 2}]))), <<"aaabcxyzpqrrrabbxyyyypqqqqqqqAzz">> = iolist_to_binary(join(re:split("aaabcxyzpqrrrabbxyyyypqqqqqqqAzz","a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz",[]))), <<":abc">> = iolist_to_binary(join(re:split("abczz","^(abc){1,2}zz",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abczz","^(abc){1,2}zz",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abczz","^(abc){1,2}zz",[]))), <<":abc">> = iolist_to_binary(join(re:split("abcabczz","^(abc){1,2}zz",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabczz","^(abc){1,2}zz",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabczz","^(abc){1,2}zz",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(abc){1,2}zz",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(abc){1,2}zz",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(abc){1,2}zz",[]))), <<"zz">> = iolist_to_binary(join(re:split("zz","^(abc){1,2}zz",[trim]))), <<"zz">> = iolist_to_binary(join(re:split("zz","^(abc){1,2}zz",[{parts, 2}]))), <<"zz">> = iolist_to_binary(join(re:split("zz","^(abc){1,2}zz",[]))), <<"abcabcabczz">> = iolist_to_binary(join(re:split("abcabcabczz","^(abc){1,2}zz",[trim]))), <<"abcabcabczz">> = iolist_to_binary(join(re:split("abcabcabczz","^(abc){1,2}zz",[{parts, 2}]))), <<"abcabcabczz">> = iolist_to_binary(join(re:split("abcabcabczz","^(abc){1,2}zz",[]))), <<">>abczz">> = iolist_to_binary(join(re:split(">>abczz","^(abc){1,2}zz",[trim]))), <<">>abczz">> = iolist_to_binary(join(re:split(">>abczz","^(abc){1,2}zz",[{parts, 2}]))), <<">>abczz">> = iolist_to_binary(join(re:split(">>abczz","^(abc){1,2}zz",[]))), <<":b">> = iolist_to_binary(join(re:split("bc","^(b+?|a){1,2}?c",[trim]))), <<":b:">> = iolist_to_binary(join(re:split("bc","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":b:">> = iolist_to_binary(join(re:split("bc","^(b+?|a){1,2}?c",[]))), <<":b">> = iolist_to_binary(join(re:split("bbc","^(b+?|a){1,2}?c",[trim]))), <<":b:">> = iolist_to_binary(join(re:split("bbc","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":b:">> = iolist_to_binary(join(re:split("bbc","^(b+?|a){1,2}?c",[]))), <<":bb">> = iolist_to_binary(join(re:split("bbbc","^(b+?|a){1,2}?c",[trim]))), <<":bb:">> = iolist_to_binary(join(re:split("bbbc","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":bb:">> = iolist_to_binary(join(re:split("bbbc","^(b+?|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bac","^(b+?|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bac","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bac","^(b+?|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbac","^(b+?|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbac","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbac","^(b+?|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("aac","^(b+?|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aac","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aac","^(b+?|a){1,2}?c",[]))), <<":bbbbbbbbbbb">> = iolist_to_binary(join(re:split("abbbbbbbbbbbc","^(b+?|a){1,2}?c",[trim]))), <<":bbbbbbbbbbb:">> = iolist_to_binary(join(re:split("abbbbbbbbbbbc","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":bbbbbbbbbbb:">> = iolist_to_binary(join(re:split("abbbbbbbbbbbc","^(b+?|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbbbbbbbbbbac","^(b+?|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbbbbbbbbac","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbbbbbbbbac","^(b+?|a){1,2}?c",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(b+?|a){1,2}?c",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(b+?|a){1,2}?c",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(b+?|a){1,2}?c",[]))), <<"aaac">> = iolist_to_binary(join(re:split("aaac","^(b+?|a){1,2}?c",[trim]))), <<"aaac">> = iolist_to_binary(join(re:split("aaac","^(b+?|a){1,2}?c",[{parts, 2}]))), <<"aaac">> = iolist_to_binary(join(re:split("aaac","^(b+?|a){1,2}?c",[]))), <<"abbbbbbbbbbbac">> = iolist_to_binary(join(re:split("abbbbbbbbbbbac","^(b+?|a){1,2}?c",[trim]))), <<"abbbbbbbbbbbac">> = iolist_to_binary(join(re:split("abbbbbbbbbbbac","^(b+?|a){1,2}?c",[{parts, 2}]))), <<"abbbbbbbbbbbac">> = iolist_to_binary(join(re:split("abbbbbbbbbbbac","^(b+?|a){1,2}?c",[]))), <<":b">> = iolist_to_binary(join(re:split("bc","^(b+|a){1,2}c",[trim]))), <<":b:">> = iolist_to_binary(join(re:split("bc","^(b+|a){1,2}c",[{parts, 2}]))), <<":b:">> = iolist_to_binary(join(re:split("bc","^(b+|a){1,2}c",[]))), <<":bb">> = iolist_to_binary(join(re:split("bbc","^(b+|a){1,2}c",[trim]))), <<":bb:">> = iolist_to_binary(join(re:split("bbc","^(b+|a){1,2}c",[{parts, 2}]))), <<":bb:">> = iolist_to_binary(join(re:split("bbc","^(b+|a){1,2}c",[]))), <<":bbb">> = iolist_to_binary(join(re:split("bbbc","^(b+|a){1,2}c",[trim]))), <<":bbb:">> = iolist_to_binary(join(re:split("bbbc","^(b+|a){1,2}c",[{parts, 2}]))), <<":bbb:">> = iolist_to_binary(join(re:split("bbbc","^(b+|a){1,2}c",[]))), <<":a">> = iolist_to_binary(join(re:split("bac","^(b+|a){1,2}c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bac","^(b+|a){1,2}c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bac","^(b+|a){1,2}c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbac","^(b+|a){1,2}c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbac","^(b+|a){1,2}c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbac","^(b+|a){1,2}c",[]))), <<":a">> = iolist_to_binary(join(re:split("aac","^(b+|a){1,2}c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aac","^(b+|a){1,2}c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aac","^(b+|a){1,2}c",[]))), <<":bbbbbbbbbbb">> = iolist_to_binary(join(re:split("abbbbbbbbbbbc","^(b+|a){1,2}c",[trim]))), <<":bbbbbbbbbbb:">> = iolist_to_binary(join(re:split("abbbbbbbbbbbc","^(b+|a){1,2}c",[{parts, 2}]))), <<":bbbbbbbbbbb:">> = iolist_to_binary(join(re:split("abbbbbbbbbbbc","^(b+|a){1,2}c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbbbbbbbbbbac","^(b+|a){1,2}c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbbbbbbbbac","^(b+|a){1,2}c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbbbbbbbbac","^(b+|a){1,2}c",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(b+|a){1,2}c",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(b+|a){1,2}c",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(b+|a){1,2}c",[]))), <<"aaac">> = iolist_to_binary(join(re:split("aaac","^(b+|a){1,2}c",[trim]))), <<"aaac">> = iolist_to_binary(join(re:split("aaac","^(b+|a){1,2}c",[{parts, 2}]))), <<"aaac">> = iolist_to_binary(join(re:split("aaac","^(b+|a){1,2}c",[]))), <<"abbbbbbbbbbbac">> = iolist_to_binary(join(re:split("abbbbbbbbbbbac","^(b+|a){1,2}c",[trim]))), <<"abbbbbbbbbbbac">> = iolist_to_binary(join(re:split("abbbbbbbbbbbac","^(b+|a){1,2}c",[{parts, 2}]))), <<"abbbbbbbbbbbac">> = iolist_to_binary(join(re:split("abbbbbbbbbbbac","^(b+|a){1,2}c",[]))), <<":b">> = iolist_to_binary(join(re:split("bbc","^(b+|a){1,2}?bc",[trim]))), <<":b:">> = iolist_to_binary(join(re:split("bbc","^(b+|a){1,2}?bc",[{parts, 2}]))), <<":b:">> = iolist_to_binary(join(re:split("bbc","^(b+|a){1,2}?bc",[]))), <<":ba">> = iolist_to_binary(join(re:split("babc","^(b*|ba){1,2}?bc",[trim]))), <<":ba:">> = iolist_to_binary(join(re:split("babc","^(b*|ba){1,2}?bc",[{parts, 2}]))), <<":ba:">> = iolist_to_binary(join(re:split("babc","^(b*|ba){1,2}?bc",[]))), <<":ba">> = iolist_to_binary(join(re:split("bbabc","^(b*|ba){1,2}?bc",[trim]))), <<":ba:">> = iolist_to_binary(join(re:split("bbabc","^(b*|ba){1,2}?bc",[{parts, 2}]))), <<":ba:">> = iolist_to_binary(join(re:split("bbabc","^(b*|ba){1,2}?bc",[]))), <<":ba">> = iolist_to_binary(join(re:split("bababc","^(b*|ba){1,2}?bc",[trim]))), <<":ba:">> = iolist_to_binary(join(re:split("bababc","^(b*|ba){1,2}?bc",[{parts, 2}]))), <<":ba:">> = iolist_to_binary(join(re:split("bababc","^(b*|ba){1,2}?bc",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(b*|ba){1,2}?bc",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(b*|ba){1,2}?bc",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(b*|ba){1,2}?bc",[]))), <<"bababbc">> = iolist_to_binary(join(re:split("bababbc","^(b*|ba){1,2}?bc",[trim]))), <<"bababbc">> = iolist_to_binary(join(re:split("bababbc","^(b*|ba){1,2}?bc",[{parts, 2}]))), <<"bababbc">> = iolist_to_binary(join(re:split("bababbc","^(b*|ba){1,2}?bc",[]))), <<"babababc">> = iolist_to_binary(join(re:split("babababc","^(b*|ba){1,2}?bc",[trim]))), <<"babababc">> = iolist_to_binary(join(re:split("babababc","^(b*|ba){1,2}?bc",[{parts, 2}]))), <<"babababc">> = iolist_to_binary(join(re:split("babababc","^(b*|ba){1,2}?bc",[]))), <<":ba">> = iolist_to_binary(join(re:split("babc","^(ba|b*){1,2}?bc",[trim]))), <<":ba:">> = iolist_to_binary(join(re:split("babc","^(ba|b*){1,2}?bc",[{parts, 2}]))), <<":ba:">> = iolist_to_binary(join(re:split("babc","^(ba|b*){1,2}?bc",[]))), <<":ba">> = iolist_to_binary(join(re:split("bbabc","^(ba|b*){1,2}?bc",[trim]))), <<":ba:">> = iolist_to_binary(join(re:split("bbabc","^(ba|b*){1,2}?bc",[{parts, 2}]))), <<":ba:">> = iolist_to_binary(join(re:split("bbabc","^(ba|b*){1,2}?bc",[]))), <<":ba">> = iolist_to_binary(join(re:split("bababc","^(ba|b*){1,2}?bc",[trim]))), <<":ba:">> = iolist_to_binary(join(re:split("bababc","^(ba|b*){1,2}?bc",[{parts, 2}]))), <<":ba:">> = iolist_to_binary(join(re:split("bababc","^(ba|b*){1,2}?bc",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(ba|b*){1,2}?bc",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(ba|b*){1,2}?bc",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(ba|b*){1,2}?bc",[]))), <<"bababbc">> = iolist_to_binary(join(re:split("bababbc","^(ba|b*){1,2}?bc",[trim]))), <<"bababbc">> = iolist_to_binary(join(re:split("bababbc","^(ba|b*){1,2}?bc",[{parts, 2}]))), <<"bababbc">> = iolist_to_binary(join(re:split("bababbc","^(ba|b*){1,2}?bc",[]))), <<"babababc">> = iolist_to_binary(join(re:split("babababc","^(ba|b*){1,2}?bc",[trim]))), <<"babababc">> = iolist_to_binary(join(re:split("babababc","^(ba|b*){1,2}?bc",[{parts, 2}]))), <<"babababc">> = iolist_to_binary(join(re:split("babababc","^(ba|b*){1,2}?bc",[]))), <<"">> = iolist_to_binary(join(re:split(";z","^\\ca\\cA\\c[;\\c:",[trim]))), <<":">> = iolist_to_binary(join(re:split(";z","^\\ca\\cA\\c[;\\c:",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split(";z","^\\ca\\cA\\c[;\\c:",[]))), <<":thing">> = iolist_to_binary(join(re:split("athing","^[ab\\]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("athing","^[ab\\]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("athing","^[ab\\]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("bthing","^[ab\\]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("bthing","^[ab\\]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("bthing","^[ab\\]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("]thing","^[ab\\]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("]thing","^[ab\\]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("]thing","^[ab\\]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("cthing","^[ab\\]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("cthing","^[ab\\]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("cthing","^[ab\\]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("dthing","^[ab\\]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("dthing","^[ab\\]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("dthing","^[ab\\]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("ething","^[ab\\]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("ething","^[ab\\]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("ething","^[ab\\]cde]",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[ab\\]cde]",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[ab\\]cde]",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[ab\\]cde]",[]))), <<"fthing">> = iolist_to_binary(join(re:split("fthing","^[ab\\]cde]",[trim]))), <<"fthing">> = iolist_to_binary(join(re:split("fthing","^[ab\\]cde]",[{parts, 2}]))), <<"fthing">> = iolist_to_binary(join(re:split("fthing","^[ab\\]cde]",[]))), <<"[thing">> = iolist_to_binary(join(re:split("[thing","^[ab\\]cde]",[trim]))), <<"[thing">> = iolist_to_binary(join(re:split("[thing","^[ab\\]cde]",[{parts, 2}]))), <<"[thing">> = iolist_to_binary(join(re:split("[thing","^[ab\\]cde]",[]))), <<"\\thing">> = iolist_to_binary(join(re:split("\\thing","^[ab\\]cde]",[trim]))), <<"\\thing">> = iolist_to_binary(join(re:split("\\thing","^[ab\\]cde]",[{parts, 2}]))), <<"\\thing">> = iolist_to_binary(join(re:split("\\thing","^[ab\\]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("]thing","^[]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("]thing","^[]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("]thing","^[]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("cthing","^[]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("cthing","^[]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("cthing","^[]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("dthing","^[]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("dthing","^[]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("dthing","^[]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("ething","^[]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("ething","^[]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("ething","^[]cde]",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[]cde]",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[]cde]",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[]cde]",[]))), <<"athing">> = iolist_to_binary(join(re:split("athing","^[]cde]",[trim]))), <<"athing">> = iolist_to_binary(join(re:split("athing","^[]cde]",[{parts, 2}]))), <<"athing">> = iolist_to_binary(join(re:split("athing","^[]cde]",[]))), <<"fthing">> = iolist_to_binary(join(re:split("fthing","^[]cde]",[trim]))), <<"fthing">> = iolist_to_binary(join(re:split("fthing","^[]cde]",[{parts, 2}]))), <<"fthing">> = iolist_to_binary(join(re:split("fthing","^[]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("fthing","^[^ab\\]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("fthing","^[^ab\\]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("fthing","^[^ab\\]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("[thing","^[^ab\\]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("[thing","^[^ab\\]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("[thing","^[^ab\\]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("\\thing","^[^ab\\]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("\\thing","^[^ab\\]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("\\thing","^[^ab\\]cde]",[]))), <<":** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[^ab\\]cde]",[trim]))), <<":** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[^ab\\]cde]",[{parts, 2}]))), <<":** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[^ab\\]cde]",[]))), <<"athing">> = iolist_to_binary(join(re:split("athing","^[^ab\\]cde]",[trim]))), <<"athing">> = iolist_to_binary(join(re:split("athing","^[^ab\\]cde]",[{parts, 2}]))), <<"athing">> = iolist_to_binary(join(re:split("athing","^[^ab\\]cde]",[]))), <<"bthing">> = iolist_to_binary(join(re:split("bthing","^[^ab\\]cde]",[trim]))), <<"bthing">> = iolist_to_binary(join(re:split("bthing","^[^ab\\]cde]",[{parts, 2}]))), <<"bthing">> = iolist_to_binary(join(re:split("bthing","^[^ab\\]cde]",[]))), <<"]thing">> = iolist_to_binary(join(re:split("]thing","^[^ab\\]cde]",[trim]))), <<"]thing">> = iolist_to_binary(join(re:split("]thing","^[^ab\\]cde]",[{parts, 2}]))), <<"]thing">> = iolist_to_binary(join(re:split("]thing","^[^ab\\]cde]",[]))), <<"cthing">> = iolist_to_binary(join(re:split("cthing","^[^ab\\]cde]",[trim]))), <<"cthing">> = iolist_to_binary(join(re:split("cthing","^[^ab\\]cde]",[{parts, 2}]))), <<"cthing">> = iolist_to_binary(join(re:split("cthing","^[^ab\\]cde]",[]))), <<"dthing">> = iolist_to_binary(join(re:split("dthing","^[^ab\\]cde]",[trim]))), <<"dthing">> = iolist_to_binary(join(re:split("dthing","^[^ab\\]cde]",[{parts, 2}]))), <<"dthing">> = iolist_to_binary(join(re:split("dthing","^[^ab\\]cde]",[]))), <<"ething">> = iolist_to_binary(join(re:split("ething","^[^ab\\]cde]",[trim]))), <<"ething">> = iolist_to_binary(join(re:split("ething","^[^ab\\]cde]",[{parts, 2}]))), <<"ething">> = iolist_to_binary(join(re:split("ething","^[^ab\\]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("athing","^[^]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("athing","^[^]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("athing","^[^]cde]",[]))), <<":thing">> = iolist_to_binary(join(re:split("fthing","^[^]cde]",[trim]))), <<":thing">> = iolist_to_binary(join(re:split("fthing","^[^]cde]",[{parts, 2}]))), <<":thing">> = iolist_to_binary(join(re:split("fthing","^[^]cde]",[]))), <<":** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[^]cde]",[trim]))), <<":** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[^]cde]",[{parts, 2}]))), <<":** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[^]cde]",[]))), <<"]thing">> = iolist_to_binary(join(re:split("]thing","^[^]cde]",[trim]))), <<"]thing">> = iolist_to_binary(join(re:split("]thing","^[^]cde]",[{parts, 2}]))), <<"]thing">> = iolist_to_binary(join(re:split("]thing","^[^]cde]",[]))), <<"cthing">> = iolist_to_binary(join(re:split("cthing","^[^]cde]",[trim]))), <<"cthing">> = iolist_to_binary(join(re:split("cthing","^[^]cde]",[{parts, 2}]))), <<"cthing">> = iolist_to_binary(join(re:split("cthing","^[^]cde]",[]))), <<"dthing">> = iolist_to_binary(join(re:split("dthing","^[^]cde]",[trim]))), <<"dthing">> = iolist_to_binary(join(re:split("dthing","^[^]cde]",[{parts, 2}]))), <<"dthing">> = iolist_to_binary(join(re:split("dthing","^[^]cde]",[]))), <<"ething">> = iolist_to_binary(join(re:split("ething","^[^]cde]",[trim]))), <<"ething">> = iolist_to_binary(join(re:split("ething","^[^]cde]",[{parts, 2}]))), <<"ething">> = iolist_to_binary(join(re:split("ething","^[^]cde]",[]))), <<"">> = iolist_to_binary(join(re:split("0","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("0","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("0","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("1","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("1","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("1","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("2","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("2","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("2","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("3","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("3","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("3","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("4","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("4","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("4","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("5","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("5","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("5","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("6","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("6","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("6","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("7","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("7","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("7","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("8","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("8","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("8","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("9","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("9","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("9","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("10","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("10","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("10","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("100","^[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("100","^[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("100","^[0-9]+$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[0-9]+$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[0-9]+$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[0-9]+$",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^[0-9]+$",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^[0-9]+$",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("enter","^.*nter",[trim]))), <<":">> = iolist_to_binary(join(re:split("enter","^.*nter",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("enter","^.*nter",[]))), <<"">> = iolist_to_binary(join(re:split("inter","^.*nter",[trim]))), <<":">> = iolist_to_binary(join(re:split("inter","^.*nter",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("inter","^.*nter",[]))), <<"">> = iolist_to_binary(join(re:split("uponter","^.*nter",[trim]))), <<":">> = iolist_to_binary(join(re:split("uponter","^.*nter",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("uponter","^.*nter",[]))), ok. run1() -> <<"">> = iolist_to_binary(join(re:split("xxx0","^xxx[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("xxx0","^xxx[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("xxx0","^xxx[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("xxx1234","^xxx[0-9]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("xxx1234","^xxx[0-9]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("xxx1234","^xxx[0-9]+$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^xxx[0-9]+$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^xxx[0-9]+$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^xxx[0-9]+$",[]))), <<"xxx">> = iolist_to_binary(join(re:split("xxx","^xxx[0-9]+$",[trim]))), <<"xxx">> = iolist_to_binary(join(re:split("xxx","^xxx[0-9]+$",[{parts, 2}]))), <<"xxx">> = iolist_to_binary(join(re:split("xxx","^xxx[0-9]+$",[]))), <<"">> = iolist_to_binary(join(re:split("x123","^.+[0-9][0-9][0-9]$",[trim]))), <<":">> = iolist_to_binary(join(re:split("x123","^.+[0-9][0-9][0-9]$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("x123","^.+[0-9][0-9][0-9]$",[]))), <<"">> = iolist_to_binary(join(re:split("xx123","^.+[0-9][0-9][0-9]$",[trim]))), <<":">> = iolist_to_binary(join(re:split("xx123","^.+[0-9][0-9][0-9]$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("xx123","^.+[0-9][0-9][0-9]$",[]))), <<"">> = iolist_to_binary(join(re:split("123456","^.+[0-9][0-9][0-9]$",[trim]))), <<":">> = iolist_to_binary(join(re:split("123456","^.+[0-9][0-9][0-9]$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("123456","^.+[0-9][0-9][0-9]$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^.+[0-9][0-9][0-9]$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^.+[0-9][0-9][0-9]$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^.+[0-9][0-9][0-9]$",[]))), <<"123">> = iolist_to_binary(join(re:split("123","^.+[0-9][0-9][0-9]$",[trim]))), <<"123">> = iolist_to_binary(join(re:split("123","^.+[0-9][0-9][0-9]$",[{parts, 2}]))), <<"123">> = iolist_to_binary(join(re:split("123","^.+[0-9][0-9][0-9]$",[]))), <<"">> = iolist_to_binary(join(re:split("x1234","^.+[0-9][0-9][0-9]$",[trim]))), <<":">> = iolist_to_binary(join(re:split("x1234","^.+[0-9][0-9][0-9]$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("x1234","^.+[0-9][0-9][0-9]$",[]))), <<"">> = iolist_to_binary(join(re:split("x123","^.+?[0-9][0-9][0-9]$",[trim]))), <<":">> = iolist_to_binary(join(re:split("x123","^.+?[0-9][0-9][0-9]$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("x123","^.+?[0-9][0-9][0-9]$",[]))), <<"">> = iolist_to_binary(join(re:split("xx123","^.+?[0-9][0-9][0-9]$",[trim]))), <<":">> = iolist_to_binary(join(re:split("xx123","^.+?[0-9][0-9][0-9]$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("xx123","^.+?[0-9][0-9][0-9]$",[]))), <<"">> = iolist_to_binary(join(re:split("123456","^.+?[0-9][0-9][0-9]$",[trim]))), <<":">> = iolist_to_binary(join(re:split("123456","^.+?[0-9][0-9][0-9]$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("123456","^.+?[0-9][0-9][0-9]$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^.+?[0-9][0-9][0-9]$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^.+?[0-9][0-9][0-9]$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^.+?[0-9][0-9][0-9]$",[]))), <<"123">> = iolist_to_binary(join(re:split("123","^.+?[0-9][0-9][0-9]$",[trim]))), <<"123">> = iolist_to_binary(join(re:split("123","^.+?[0-9][0-9][0-9]$",[{parts, 2}]))), <<"123">> = iolist_to_binary(join(re:split("123","^.+?[0-9][0-9][0-9]$",[]))), <<"">> = iolist_to_binary(join(re:split("x1234","^.+?[0-9][0-9][0-9]$",[trim]))), <<":">> = iolist_to_binary(join(re:split("x1234","^.+?[0-9][0-9][0-9]$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("x1234","^.+?[0-9][0-9][0-9]$",[]))), <<":abc:pqr">> = iolist_to_binary(join(re:split("abc!pqr=apquxz.ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[trim]))), <<":abc:pqr:">> = iolist_to_binary(join(re:split("abc!pqr=apquxz.ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[{parts, 2}]))), <<":abc:pqr:">> = iolist_to_binary(join(re:split("abc!pqr=apquxz.ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[]))), <<"!pqr=apquxz.ixr.zzz.ac.uk">> = iolist_to_binary(join(re:split("!pqr=apquxz.ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[trim]))), <<"!pqr=apquxz.ixr.zzz.ac.uk">> = iolist_to_binary(join(re:split("!pqr=apquxz.ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[{parts, 2}]))), <<"!pqr=apquxz.ixr.zzz.ac.uk">> = iolist_to_binary(join(re:split("!pqr=apquxz.ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[]))), <<"abc!=apquxz.ixr.zzz.ac.uk">> = iolist_to_binary(join(re:split("abc!=apquxz.ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[trim]))), <<"abc!=apquxz.ixr.zzz.ac.uk">> = iolist_to_binary(join(re:split("abc!=apquxz.ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[{parts, 2}]))), <<"abc!=apquxz.ixr.zzz.ac.uk">> = iolist_to_binary(join(re:split("abc!=apquxz.ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[]))), <<"abc!pqr=apquxz:ixr.zzz.ac.uk">> = iolist_to_binary(join(re:split("abc!pqr=apquxz:ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[trim]))), <<"abc!pqr=apquxz:ixr.zzz.ac.uk">> = iolist_to_binary(join(re:split("abc!pqr=apquxz:ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[{parts, 2}]))), <<"abc!pqr=apquxz:ixr.zzz.ac.uk">> = iolist_to_binary(join(re:split("abc!pqr=apquxz:ixr.zzz.ac.uk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[]))), <<"abc!pqr=apquxz.ixr.zzz.ac.ukk">> = iolist_to_binary(join(re:split("abc!pqr=apquxz.ixr.zzz.ac.ukk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[trim]))), <<"abc!pqr=apquxz.ixr.zzz.ac.ukk">> = iolist_to_binary(join(re:split("abc!pqr=apquxz.ixr.zzz.ac.ukk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[{parts, 2}]))), <<"abc!pqr=apquxz.ixr.zzz.ac.ukk">> = iolist_to_binary(join(re:split("abc!pqr=apquxz.ixr.zzz.ac.ukk","^([^!]+)!(.+)=apquxz\\.ixr\\.zzz\\.ac\\.uk$",[]))), <<"Well, we need a colon: somewhere">> = iolist_to_binary(join(re:split("Well, we need a colon: somewhere",":",[trim]))), <<"Well, we need a colon: somewhere">> = iolist_to_binary(join(re:split("Well, we need a colon: somewhere",":",[{parts, 2}]))), <<"Well, we need a colon: somewhere">> = iolist_to_binary(join(re:split("Well, we need a colon: somewhere",":",[]))), <<"*** Fail if we don't">> = iolist_to_binary(join(re:split("*** Fail if we don't",":",[trim]))), <<"*** Fail if we don't">> = iolist_to_binary(join(re:split("*** Fail if we don't",":",[{parts, 2}]))), <<"*** Fail if we don't">> = iolist_to_binary(join(re:split("*** Fail if we don't",":",[]))), <<":0abc">> = iolist_to_binary(join(re:split("0abc","([\\da-f:]+)$",[caseless, trim]))), <<":0abc:">> = iolist_to_binary(join(re:split("0abc","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<":0abc:">> = iolist_to_binary(join(re:split("0abc","([\\da-f:]+)$",[caseless]))), <<":abc">> = iolist_to_binary(join(re:split("abc","([\\da-f:]+)$",[caseless, trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abc","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abc","([\\da-f:]+)$",[caseless]))), <<":fed">> = iolist_to_binary(join(re:split("fed","([\\da-f:]+)$",[caseless, trim]))), <<":fed:">> = iolist_to_binary(join(re:split("fed","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<":fed:">> = iolist_to_binary(join(re:split("fed","([\\da-f:]+)$",[caseless]))), <<":E">> = iolist_to_binary(join(re:split("E","([\\da-f:]+)$",[caseless, trim]))), <<":E:">> = iolist_to_binary(join(re:split("E","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<":E:">> = iolist_to_binary(join(re:split("E","([\\da-f:]+)$",[caseless]))), <<":::">> = iolist_to_binary(join(re:split("::","([\\da-f:]+)$",[caseless, trim]))), <<"::::">> = iolist_to_binary(join(re:split("::","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<"::::">> = iolist_to_binary(join(re:split("::","([\\da-f:]+)$",[caseless]))), <<":5f03:12C0::932e">> = iolist_to_binary(join(re:split("5f03:12C0::932e","([\\da-f:]+)$",[caseless, trim]))), <<":5f03:12C0::932e:">> = iolist_to_binary(join(re:split("5f03:12C0::932e","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<":5f03:12C0::932e:">> = iolist_to_binary(join(re:split("5f03:12C0::932e","([\\da-f:]+)$",[caseless]))), <<"fed :def">> = iolist_to_binary(join(re:split("fed def","([\\da-f:]+)$",[caseless, trim]))), <<"fed :def:">> = iolist_to_binary(join(re:split("fed def","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<"fed :def:">> = iolist_to_binary(join(re:split("fed def","([\\da-f:]+)$",[caseless]))), <<"Any old stu:ff">> = iolist_to_binary(join(re:split("Any old stuff","([\\da-f:]+)$",[caseless, trim]))), <<"Any old stu:ff:">> = iolist_to_binary(join(re:split("Any old stuff","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<"Any old stu:ff:">> = iolist_to_binary(join(re:split("Any old stuff","([\\da-f:]+)$",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","([\\da-f:]+)$",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","([\\da-f:]+)$",[caseless]))), <<"0zzz">> = iolist_to_binary(join(re:split("0zzz","([\\da-f:]+)$",[caseless, trim]))), <<"0zzz">> = iolist_to_binary(join(re:split("0zzz","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<"0zzz">> = iolist_to_binary(join(re:split("0zzz","([\\da-f:]+)$",[caseless]))), <<"gzzz">> = iolist_to_binary(join(re:split("gzzz","([\\da-f:]+)$",[caseless, trim]))), <<"gzzz">> = iolist_to_binary(join(re:split("gzzz","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<"gzzz">> = iolist_to_binary(join(re:split("gzzz","([\\da-f:]+)$",[caseless]))), <<"fed ">> = iolist_to_binary(join(re:split("fed ","([\\da-f:]+)$",[caseless, trim]))), <<"fed ">> = iolist_to_binary(join(re:split("fed ","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<"fed ">> = iolist_to_binary(join(re:split("fed ","([\\da-f:]+)$",[caseless]))), <<"Any old rubbish">> = iolist_to_binary(join(re:split("Any old rubbish","([\\da-f:]+)$",[caseless, trim]))), <<"Any old rubbish">> = iolist_to_binary(join(re:split("Any old rubbish","([\\da-f:]+)$",[caseless, {parts, 2}]))), <<"Any old rubbish">> = iolist_to_binary(join(re:split("Any old rubbish","([\\da-f:]+)$",[caseless]))), <<":1:2:3">> = iolist_to_binary(join(re:split(".1.2.3","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[trim]))), <<":1:2:3:">> = iolist_to_binary(join(re:split(".1.2.3","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[{parts, 2}]))), <<":1:2:3:">> = iolist_to_binary(join(re:split(".1.2.3","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[]))), <<":12:123:0">> = iolist_to_binary(join(re:split("A.12.123.0","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[trim]))), <<":12:123:0:">> = iolist_to_binary(join(re:split("A.12.123.0","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[{parts, 2}]))), <<":12:123:0:">> = iolist_to_binary(join(re:split("A.12.123.0","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[]))), <<".1.2.3333">> = iolist_to_binary(join(re:split(".1.2.3333","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[trim]))), <<".1.2.3333">> = iolist_to_binary(join(re:split(".1.2.3333","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[{parts, 2}]))), <<".1.2.3333">> = iolist_to_binary(join(re:split(".1.2.3333","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[]))), <<"1.2.3">> = iolist_to_binary(join(re:split("1.2.3","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[trim]))), <<"1.2.3">> = iolist_to_binary(join(re:split("1.2.3","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[{parts, 2}]))), <<"1.2.3">> = iolist_to_binary(join(re:split("1.2.3","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[]))), <<"1234.2.3">> = iolist_to_binary(join(re:split("1234.2.3","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[trim]))), <<"1234.2.3">> = iolist_to_binary(join(re:split("1234.2.3","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[{parts, 2}]))), <<"1234.2.3">> = iolist_to_binary(join(re:split("1234.2.3","^.*\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$",[]))), <<":1:non-sp1:non-sp2">> = iolist_to_binary(join(re:split("1 IN SOA non-sp1 non-sp2(","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[trim]))), <<":1:non-sp1:non-sp2:">> = iolist_to_binary(join(re:split("1 IN SOA non-sp1 non-sp2(","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[{parts, 2}]))), <<":1:non-sp1:non-sp2:">> = iolist_to_binary(join(re:split("1 IN SOA non-sp1 non-sp2(","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[]))), <<":1:non-sp1:non-sp2">> = iolist_to_binary(join(re:split("1 IN SOA non-sp1 non-sp2 (","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[trim]))), <<":1:non-sp1:non-sp2:">> = iolist_to_binary(join(re:split("1 IN SOA non-sp1 non-sp2 (","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[{parts, 2}]))), <<":1:non-sp1:non-sp2:">> = iolist_to_binary(join(re:split("1 IN SOA non-sp1 non-sp2 (","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[]))), <<"1IN SOA non-sp1 non-sp2(">> = iolist_to_binary(join(re:split("1IN SOA non-sp1 non-sp2(","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[trim]))), <<"1IN SOA non-sp1 non-sp2(">> = iolist_to_binary(join(re:split("1IN SOA non-sp1 non-sp2(","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[{parts, 2}]))), <<"1IN SOA non-sp1 non-sp2(">> = iolist_to_binary(join(re:split("1IN SOA non-sp1 non-sp2(","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[]))), <<"">> = iolist_to_binary(join(re:split("a.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[]))), <<"">> = iolist_to_binary(join(re:split("Z.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("Z.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("Z.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[]))), <<"">> = iolist_to_binary(join(re:split("2.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("2.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("2.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[]))), <<":.pq-r">> = iolist_to_binary(join(re:split("ab-c.pq-r.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[trim]))), <<":.pq-r:">> = iolist_to_binary(join(re:split("ab-c.pq-r.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[{parts, 2}]))), <<":.pq-r:">> = iolist_to_binary(join(re:split("ab-c.pq-r.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[]))), <<":.uk">> = iolist_to_binary(join(re:split("sxk.zzz.ac.uk.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[trim]))), <<":.uk:">> = iolist_to_binary(join(re:split("sxk.zzz.ac.uk.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[{parts, 2}]))), <<":.uk:">> = iolist_to_binary(join(re:split("sxk.zzz.ac.uk.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[]))), <<":.y-">> = iolist_to_binary(join(re:split("x-.y-.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[trim]))), <<":.y-:">> = iolist_to_binary(join(re:split("x-.y-.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[{parts, 2}]))), <<":.y-:">> = iolist_to_binary(join(re:split("x-.y-.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[]))), <<"-abc.peq.">> = iolist_to_binary(join(re:split("-abc.peq.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[trim]))), <<"-abc.peq.">> = iolist_to_binary(join(re:split("-abc.peq.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[{parts, 2}]))), <<"-abc.peq.">> = iolist_to_binary(join(re:split("-abc.peq.","^[a-zA-Z\\d][a-zA-Z\\d\\-]*(\\.[a-zA-Z\\d][a-zA-z\\d\\-]*)*\\.$",[]))), <<"">> = iolist_to_binary(join(re:split("*.a","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[trim]))), <<"::::">> = iolist_to_binary(join(re:split("*.a","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[{parts, 2}]))), <<"::::">> = iolist_to_binary(join(re:split("*.a","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[]))), <<":0-a">> = iolist_to_binary(join(re:split("*.b0-a","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[trim]))), <<":0-a:::">> = iolist_to_binary(join(re:split("*.b0-a","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[{parts, 2}]))), <<":0-a:::">> = iolist_to_binary(join(re:split("*.b0-a","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[]))), <<":3-b:.c">> = iolist_to_binary(join(re:split("*.c3-b.c","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[trim]))), <<":3-b:.c::">> = iolist_to_binary(join(re:split("*.c3-b.c","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[{parts, 2}]))), <<":3-b:.c::">> = iolist_to_binary(join(re:split("*.c3-b.c","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[]))), <<":-a:.b-c:-c">> = iolist_to_binary(join(re:split("*.c-a.b-c","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[trim]))), <<":-a:.b-c:-c:">> = iolist_to_binary(join(re:split("*.c-a.b-c","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[{parts, 2}]))), <<":-a:.b-c:-c:">> = iolist_to_binary(join(re:split("*.c-a.b-c","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[]))), <<"*.0">> = iolist_to_binary(join(re:split("*.0","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[trim]))), <<"*.0">> = iolist_to_binary(join(re:split("*.0","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[{parts, 2}]))), <<"*.0">> = iolist_to_binary(join(re:split("*.0","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[]))), <<"*.a-">> = iolist_to_binary(join(re:split("*.a-","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[trim]))), <<"*.a-">> = iolist_to_binary(join(re:split("*.a-","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[{parts, 2}]))), <<"*.a-">> = iolist_to_binary(join(re:split("*.a-","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[]))), <<"*.a-b.c-">> = iolist_to_binary(join(re:split("*.a-b.c-","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[trim]))), <<"*.a-b.c-">> = iolist_to_binary(join(re:split("*.a-b.c-","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[{parts, 2}]))), <<"*.a-b.c-">> = iolist_to_binary(join(re:split("*.a-b.c-","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[]))), <<"*.c-a.0-c">> = iolist_to_binary(join(re:split("*.c-a.0-c","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[trim]))), <<"*.c-a.0-c">> = iolist_to_binary(join(re:split("*.c-a.0-c","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[{parts, 2}]))), <<"*.c-a.0-c">> = iolist_to_binary(join(re:split("*.c-a.0-c","^\\*\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?(\\.[a-z]([a-z\\-\\d]*[a-z\\d]+)?)*$",[]))), <<":de:abd:e">> = iolist_to_binary(join(re:split("abde","^(?=ab(de))(abd)(e)",[trim]))), <<":de:abd:e:">> = iolist_to_binary(join(re:split("abde","^(?=ab(de))(abd)(e)",[{parts, 2}]))), <<":de:abd:e:">> = iolist_to_binary(join(re:split("abde","^(?=ab(de))(abd)(e)",[]))), <<"::abd:f">> = iolist_to_binary(join(re:split("abdf","^(?!(ab)de|x)(abd)(f)",[trim]))), <<"::abd:f:">> = iolist_to_binary(join(re:split("abdf","^(?!(ab)de|x)(abd)(f)",[{parts, 2}]))), <<"::abd:f:">> = iolist_to_binary(join(re:split("abdf","^(?!(ab)de|x)(abd)(f)",[]))), <<":abcd:cd:ab:cd">> = iolist_to_binary(join(re:split("abcd","^(?=(ab(cd)))(ab)",[trim]))), <<":abcd:cd:ab:cd">> = iolist_to_binary(join(re:split("abcd","^(?=(ab(cd)))(ab)",[{parts, 2}]))), <<":abcd:cd:ab:cd">> = iolist_to_binary(join(re:split("abcd","^(?=(ab(cd)))(ab)",[]))), <<":.d">> = iolist_to_binary(join(re:split("a.b.c.d","^[\\da-f](\\.[\\da-f])*$",[caseless, trim]))), <<":.d:">> = iolist_to_binary(join(re:split("a.b.c.d","^[\\da-f](\\.[\\da-f])*$",[caseless, {parts, 2}]))), <<":.d:">> = iolist_to_binary(join(re:split("a.b.c.d","^[\\da-f](\\.[\\da-f])*$",[caseless]))), <<":.D">> = iolist_to_binary(join(re:split("A.B.C.D","^[\\da-f](\\.[\\da-f])*$",[caseless, trim]))), <<":.D:">> = iolist_to_binary(join(re:split("A.B.C.D","^[\\da-f](\\.[\\da-f])*$",[caseless, {parts, 2}]))), <<":.D:">> = iolist_to_binary(join(re:split("A.B.C.D","^[\\da-f](\\.[\\da-f])*$",[caseless]))), <<":.C">> = iolist_to_binary(join(re:split("a.b.c.1.2.3.C","^[\\da-f](\\.[\\da-f])*$",[caseless, trim]))), <<":.C:">> = iolist_to_binary(join(re:split("a.b.c.1.2.3.C","^[\\da-f](\\.[\\da-f])*$",[caseless, {parts, 2}]))), <<":.C:">> = iolist_to_binary(join(re:split("a.b.c.1.2.3.C","^[\\da-f](\\.[\\da-f])*$",[caseless]))), <<"">> = iolist_to_binary(join(re:split("\"1234\"","^\\\".*\\\"\\s*(;.*)?$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("\"1234\"","^\\\".*\\\"\\s*(;.*)?$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("\"1234\"","^\\\".*\\\"\\s*(;.*)?$",[]))), <<":;">> = iolist_to_binary(join(re:split("\"abcd\" ;","^\\\".*\\\"\\s*(;.*)?$",[trim]))), <<":;:">> = iolist_to_binary(join(re:split("\"abcd\" ;","^\\\".*\\\"\\s*(;.*)?$",[{parts, 2}]))), <<":;:">> = iolist_to_binary(join(re:split("\"abcd\" ;","^\\\".*\\\"\\s*(;.*)?$",[]))), <<":; rhubarb">> = iolist_to_binary(join(re:split("\"\" ; rhubarb","^\\\".*\\\"\\s*(;.*)?$",[trim]))), <<":; rhubarb:">> = iolist_to_binary(join(re:split("\"\" ; rhubarb","^\\\".*\\\"\\s*(;.*)?$",[{parts, 2}]))), <<":; rhubarb:">> = iolist_to_binary(join(re:split("\"\" ; rhubarb","^\\\".*\\\"\\s*(;.*)?$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\\".*\\\"\\s*(;.*)?$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\\".*\\\"\\s*(;.*)?$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\\".*\\\"\\s*(;.*)?$",[]))), <<"\"1234\" : things">> = iolist_to_binary(join(re:split("\"1234\" : things","^\\\".*\\\"\\s*(;.*)?$",[trim]))), <<"\"1234\" : things">> = iolist_to_binary(join(re:split("\"1234\" : things","^\\\".*\\\"\\s*(;.*)?$",[{parts, 2}]))), <<"\"1234\" : things">> = iolist_to_binary(join(re:split("\"1234\" : things","^\\\".*\\\"\\s*(;.*)?$",[]))), <<"">> = iolist_to_binary(join(re:split("","^$",[trim]))), <<"">> = iolist_to_binary(join(re:split("","^$",[{parts, 2}]))), <<"">> = iolist_to_binary(join(re:split("","^$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^$",[]))), <<"">> = iolist_to_binary(join(re:split("ab c"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("ab c"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab c"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended]))), <<"abc">> = iolist_to_binary(join(re:split("abc"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended, trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended, {parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended]))), <<"ab cde">> = iolist_to_binary(join(re:split("ab cde"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended, trim]))), <<"ab cde">> = iolist_to_binary(join(re:split("ab cde"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended, {parts, 2}]))), <<"ab cde">> = iolist_to_binary(join(re:split("ab cde"," ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[extended]))), <<"">> = iolist_to_binary(join(re:split("ab c","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab c","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab c","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[]))), <<"ab cde">> = iolist_to_binary(join(re:split("ab cde","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[trim]))), <<"ab cde">> = iolist_to_binary(join(re:split("ab cde","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[{parts, 2}]))), <<"ab cde">> = iolist_to_binary(join(re:split("ab cde","(?x) ^ a (?# begins with a) b\\sc (?# then b c) $ (?# then end)",[]))), <<"">> = iolist_to_binary(join(re:split("a bcd","^ a\\ b[c ]d $",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("a bcd","^ a\\ b[c ]d $",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a bcd","^ a\\ b[c ]d $",[extended]))), <<"">> = iolist_to_binary(join(re:split("a b d","^ a\\ b[c ]d $",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("a b d","^ a\\ b[c ]d $",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a b d","^ a\\ b[c ]d $",[extended]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^ a\\ b[c ]d $",[extended, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^ a\\ b[c ]d $",[extended, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^ a\\ b[c ]d $",[extended]))), <<"abcd">> = iolist_to_binary(join(re:split("abcd","^ a\\ b[c ]d $",[extended, trim]))), <<"abcd">> = iolist_to_binary(join(re:split("abcd","^ a\\ b[c ]d $",[extended, {parts, 2}]))), <<"abcd">> = iolist_to_binary(join(re:split("abcd","^ a\\ b[c ]d $",[extended]))), <<"ab d">> = iolist_to_binary(join(re:split("ab d","^ a\\ b[c ]d $",[extended, trim]))), <<"ab d">> = iolist_to_binary(join(re:split("ab d","^ a\\ b[c ]d $",[extended, {parts, 2}]))), <<"ab d">> = iolist_to_binary(join(re:split("ab d","^ a\\ b[c ]d $",[extended]))), <<":abc:bc:c:def:ef:f:hij:ij:j:klm:lm:m">> = iolist_to_binary(join(re:split("abcdefhijklm","^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$",[trim]))), <<":abc:bc:c:def:ef:f:hij:ij:j:klm:lm:m:">> = iolist_to_binary(join(re:split("abcdefhijklm","^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$",[{parts, 2}]))), <<":abc:bc:c:def:ef:f:hij:ij:j:klm:lm:m:">> = iolist_to_binary(join(re:split("abcdefhijklm","^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$",[]))), ok. run2() -> <<":bc:c:ef:f:ij:j:lm:m">> = iolist_to_binary(join(re:split("abcdefhijklm","^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$",[trim]))), <<":bc:c:ef:f:ij:j:lm:m:">> = iolist_to_binary(join(re:split("abcdefhijklm","^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$",[{parts, 2}]))), <<":bc:c:ef:f:ij:j:lm:m:">> = iolist_to_binary(join(re:split("abcdefhijklm","^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$",[]))), <<"">> = iolist_to_binary(join(re:split("a+ Z0+ ","^[\\w][\\W][\\s][\\S][\\d][\\D][\\b][\\n][\\c]][\\022]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a+ Z0+ ","^[\\w][\\W][\\s][\\S][\\d][\\D][\\b][\\n][\\c]][\\022]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a+ Z0+ ","^[\\w][\\W][\\s][\\S][\\d][\\D][\\b][\\n][\\c]][\\022]",[]))), <<"">> = iolist_to_binary(join(re:split(".^$(*+)|{?,?}","^[.^$|()*+?{,}]+",[trim]))), <<":">> = iolist_to_binary(join(re:split(".^$(*+)|{?,?}","^[.^$|()*+?{,}]+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split(".^$(*+)|{?,?}","^[.^$|()*+?{,}]+",[]))), <<"">> = iolist_to_binary(join(re:split("z","^a*\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("z","^a*\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("z","^a*\\w",[]))), <<"">> = iolist_to_binary(join(re:split("az","^a*\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("az","^a*\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("az","^a*\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aaaz","^a*\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaz","^a*\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaz","^a*\\w",[]))), <<"">> = iolist_to_binary(join(re:split("a","^a*\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","^a*\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","^a*\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aa","^a*\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aa","^a*\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aa","^a*\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","^a*\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^a*\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^a*\\w",[]))), <<":+">> = iolist_to_binary(join(re:split("a+","^a*\\w",[trim]))), <<":+">> = iolist_to_binary(join(re:split("a+","^a*\\w",[{parts, 2}]))), <<":+">> = iolist_to_binary(join(re:split("a+","^a*\\w",[]))), <<":+">> = iolist_to_binary(join(re:split("aa+","^a*\\w",[trim]))), <<":+">> = iolist_to_binary(join(re:split("aa+","^a*\\w",[{parts, 2}]))), <<":+">> = iolist_to_binary(join(re:split("aa+","^a*\\w",[]))), <<"">> = iolist_to_binary(join(re:split("z","^a*?\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("z","^a*?\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("z","^a*?\\w",[]))), <<":z">> = iolist_to_binary(join(re:split("az","^a*?\\w",[trim]))), <<":z">> = iolist_to_binary(join(re:split("az","^a*?\\w",[{parts, 2}]))), <<":z">> = iolist_to_binary(join(re:split("az","^a*?\\w",[]))), <<":aaz">> = iolist_to_binary(join(re:split("aaaz","^a*?\\w",[trim]))), <<":aaz">> = iolist_to_binary(join(re:split("aaaz","^a*?\\w",[{parts, 2}]))), <<":aaz">> = iolist_to_binary(join(re:split("aaaz","^a*?\\w",[]))), <<"">> = iolist_to_binary(join(re:split("a","^a*?\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","^a*?\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","^a*?\\w",[]))), <<":a">> = iolist_to_binary(join(re:split("aa","^a*?\\w",[trim]))), <<":a">> = iolist_to_binary(join(re:split("aa","^a*?\\w",[{parts, 2}]))), <<":a">> = iolist_to_binary(join(re:split("aa","^a*?\\w",[]))), <<":aaa">> = iolist_to_binary(join(re:split("aaaa","^a*?\\w",[trim]))), <<":aaa">> = iolist_to_binary(join(re:split("aaaa","^a*?\\w",[{parts, 2}]))), <<":aaa">> = iolist_to_binary(join(re:split("aaaa","^a*?\\w",[]))), <<":+">> = iolist_to_binary(join(re:split("a+","^a*?\\w",[trim]))), <<":+">> = iolist_to_binary(join(re:split("a+","^a*?\\w",[{parts, 2}]))), <<":+">> = iolist_to_binary(join(re:split("a+","^a*?\\w",[]))), <<":a+">> = iolist_to_binary(join(re:split("aa+","^a*?\\w",[trim]))), <<":a+">> = iolist_to_binary(join(re:split("aa+","^a*?\\w",[{parts, 2}]))), <<":a+">> = iolist_to_binary(join(re:split("aa+","^a*?\\w",[]))), <<"">> = iolist_to_binary(join(re:split("az","^a+\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("az","^a+\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("az","^a+\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aaaz","^a+\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaz","^a+\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaz","^a+\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aa","^a+\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aa","^a+\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aa","^a+\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","^a+\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^a+\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^a+\\w",[]))), <<":+">> = iolist_to_binary(join(re:split("aa+","^a+\\w",[trim]))), <<":+">> = iolist_to_binary(join(re:split("aa+","^a+\\w",[{parts, 2}]))), <<":+">> = iolist_to_binary(join(re:split("aa+","^a+\\w",[]))), <<"">> = iolist_to_binary(join(re:split("az","^a+?\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("az","^a+?\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("az","^a+?\\w",[]))), <<":az">> = iolist_to_binary(join(re:split("aaaz","^a+?\\w",[trim]))), <<":az">> = iolist_to_binary(join(re:split("aaaz","^a+?\\w",[{parts, 2}]))), <<":az">> = iolist_to_binary(join(re:split("aaaz","^a+?\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aa","^a+?\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aa","^a+?\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aa","^a+?\\w",[]))), <<":aa">> = iolist_to_binary(join(re:split("aaaa","^a+?\\w",[trim]))), <<":aa">> = iolist_to_binary(join(re:split("aaaa","^a+?\\w",[{parts, 2}]))), <<":aa">> = iolist_to_binary(join(re:split("aaaa","^a+?\\w",[]))), <<":+">> = iolist_to_binary(join(re:split("aa+","^a+?\\w",[trim]))), <<":+">> = iolist_to_binary(join(re:split("aa+","^a+?\\w",[{parts, 2}]))), <<":+">> = iolist_to_binary(join(re:split("aa+","^a+?\\w",[]))), <<"">> = iolist_to_binary(join(re:split("1234567890","^\\d{8}\\w{2,}",[trim]))), <<":">> = iolist_to_binary(join(re:split("1234567890","^\\d{8}\\w{2,}",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("1234567890","^\\d{8}\\w{2,}",[]))), <<"">> = iolist_to_binary(join(re:split("12345678ab","^\\d{8}\\w{2,}",[trim]))), <<":">> = iolist_to_binary(join(re:split("12345678ab","^\\d{8}\\w{2,}",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("12345678ab","^\\d{8}\\w{2,}",[]))), <<"">> = iolist_to_binary(join(re:split("12345678__","^\\d{8}\\w{2,}",[trim]))), <<":">> = iolist_to_binary(join(re:split("12345678__","^\\d{8}\\w{2,}",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("12345678__","^\\d{8}\\w{2,}",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\d{8}\\w{2,}",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\d{8}\\w{2,}",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\d{8}\\w{2,}",[]))), <<"1234567">> = iolist_to_binary(join(re:split("1234567","^\\d{8}\\w{2,}",[trim]))), <<"1234567">> = iolist_to_binary(join(re:split("1234567","^\\d{8}\\w{2,}",[{parts, 2}]))), <<"1234567">> = iolist_to_binary(join(re:split("1234567","^\\d{8}\\w{2,}",[]))), <<"">> = iolist_to_binary(join(re:split("uoie","^[aeiou\\d]{4,5}$",[trim]))), <<":">> = iolist_to_binary(join(re:split("uoie","^[aeiou\\d]{4,5}$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("uoie","^[aeiou\\d]{4,5}$",[]))), <<"">> = iolist_to_binary(join(re:split("1234","^[aeiou\\d]{4,5}$",[trim]))), <<":">> = iolist_to_binary(join(re:split("1234","^[aeiou\\d]{4,5}$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("1234","^[aeiou\\d]{4,5}$",[]))), <<"">> = iolist_to_binary(join(re:split("12345","^[aeiou\\d]{4,5}$",[trim]))), <<":">> = iolist_to_binary(join(re:split("12345","^[aeiou\\d]{4,5}$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("12345","^[aeiou\\d]{4,5}$",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaa","^[aeiou\\d]{4,5}$",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaaa","^[aeiou\\d]{4,5}$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaaa","^[aeiou\\d]{4,5}$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[aeiou\\d]{4,5}$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[aeiou\\d]{4,5}$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[aeiou\\d]{4,5}$",[]))), <<"123456">> = iolist_to_binary(join(re:split("123456","^[aeiou\\d]{4,5}$",[trim]))), <<"123456">> = iolist_to_binary(join(re:split("123456","^[aeiou\\d]{4,5}$",[{parts, 2}]))), <<"123456">> = iolist_to_binary(join(re:split("123456","^[aeiou\\d]{4,5}$",[]))), <<"">> = iolist_to_binary(join(re:split("uoie","^[aeiou\\d]{4,5}?",[trim]))), <<":">> = iolist_to_binary(join(re:split("uoie","^[aeiou\\d]{4,5}?",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("uoie","^[aeiou\\d]{4,5}?",[]))), <<"">> = iolist_to_binary(join(re:split("1234","^[aeiou\\d]{4,5}?",[trim]))), <<":">> = iolist_to_binary(join(re:split("1234","^[aeiou\\d]{4,5}?",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("1234","^[aeiou\\d]{4,5}?",[]))), <<":5">> = iolist_to_binary(join(re:split("12345","^[aeiou\\d]{4,5}?",[trim]))), <<":5">> = iolist_to_binary(join(re:split("12345","^[aeiou\\d]{4,5}?",[{parts, 2}]))), <<":5">> = iolist_to_binary(join(re:split("12345","^[aeiou\\d]{4,5}?",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaaa","^[aeiou\\d]{4,5}?",[trim]))), <<":a">> = iolist_to_binary(join(re:split("aaaaa","^[aeiou\\d]{4,5}?",[{parts, 2}]))), <<":a">> = iolist_to_binary(join(re:split("aaaaa","^[aeiou\\d]{4,5}?",[]))), <<":56">> = iolist_to_binary(join(re:split("123456","^[aeiou\\d]{4,5}?",[trim]))), <<":56">> = iolist_to_binary(join(re:split("123456","^[aeiou\\d]{4,5}?",[{parts, 2}]))), <<":56">> = iolist_to_binary(join(re:split("123456","^[aeiou\\d]{4,5}?",[]))), <<":abc:abc">> = iolist_to_binary(join(re:split("abc=abcabc","\\A(abc|def)=(\\1){2,3}\\Z",[trim]))), <<":abc:abc:">> = iolist_to_binary(join(re:split("abc=abcabc","\\A(abc|def)=(\\1){2,3}\\Z",[{parts, 2}]))), <<":abc:abc:">> = iolist_to_binary(join(re:split("abc=abcabc","\\A(abc|def)=(\\1){2,3}\\Z",[]))), <<":def:def">> = iolist_to_binary(join(re:split("def=defdefdef","\\A(abc|def)=(\\1){2,3}\\Z",[trim]))), <<":def:def:">> = iolist_to_binary(join(re:split("def=defdefdef","\\A(abc|def)=(\\1){2,3}\\Z",[{parts, 2}]))), <<":def:def:">> = iolist_to_binary(join(re:split("def=defdefdef","\\A(abc|def)=(\\1){2,3}\\Z",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\A(abc|def)=(\\1){2,3}\\Z",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\A(abc|def)=(\\1){2,3}\\Z",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\A(abc|def)=(\\1){2,3}\\Z",[]))), <<"abc=defdef">> = iolist_to_binary(join(re:split("abc=defdef","\\A(abc|def)=(\\1){2,3}\\Z",[trim]))), <<"abc=defdef">> = iolist_to_binary(join(re:split("abc=defdef","\\A(abc|def)=(\\1){2,3}\\Z",[{parts, 2}]))), <<"abc=defdef">> = iolist_to_binary(join(re:split("abc=defdef","\\A(abc|def)=(\\1){2,3}\\Z",[]))), <<":a:b:c:d:e:f:g:h:i:j:k:cd">> = iolist_to_binary(join(re:split("abcdefghijkcda2","^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$",[trim]))), <<":a:b:c:d:e:f:g:h:i:j:k:cd:">> = iolist_to_binary(join(re:split("abcdefghijkcda2","^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$",[{parts, 2}]))), <<":a:b:c:d:e:f:g:h:i:j:k:cd:">> = iolist_to_binary(join(re:split("abcdefghijkcda2","^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$",[]))), <<":a:b:c:d:e:f:g:h:i:j:k:cd">> = iolist_to_binary(join(re:split("abcdefghijkkkkcda2","^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$",[trim]))), <<":a:b:c:d:e:f:g:h:i:j:k:cd:">> = iolist_to_binary(join(re:split("abcdefghijkkkkcda2","^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$",[{parts, 2}]))), <<":a:b:c:d:e:f:g:h:i:j:k:cd:">> = iolist_to_binary(join(re:split("abcdefghijkkkkcda2","^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\11*(\\3\\4)\\1(?#)2$",[]))), <<":cataract:aract:ract::3">> = iolist_to_binary(join(re:split("cataract cataract23","(cat(a(ract|tonic)|erpillar)) \\1()2(3)",[trim]))), <<":cataract:aract:ract::3:">> = iolist_to_binary(join(re:split("cataract cataract23","(cat(a(ract|tonic)|erpillar)) \\1()2(3)",[{parts, 2}]))), <<":cataract:aract:ract::3:">> = iolist_to_binary(join(re:split("cataract cataract23","(cat(a(ract|tonic)|erpillar)) \\1()2(3)",[]))), <<":catatonic:atonic:tonic::3">> = iolist_to_binary(join(re:split("catatonic catatonic23","(cat(a(ract|tonic)|erpillar)) \\1()2(3)",[trim]))), <<":catatonic:atonic:tonic::3:">> = iolist_to_binary(join(re:split("catatonic catatonic23","(cat(a(ract|tonic)|erpillar)) \\1()2(3)",[{parts, 2}]))), <<":catatonic:atonic:tonic::3:">> = iolist_to_binary(join(re:split("catatonic catatonic23","(cat(a(ract|tonic)|erpillar)) \\1()2(3)",[]))), <<":caterpillar:erpillar:::3">> = iolist_to_binary(join(re:split("caterpillar caterpillar23","(cat(a(ract|tonic)|erpillar)) \\1()2(3)",[trim]))), <<":caterpillar:erpillar:::3:">> = iolist_to_binary(join(re:split("caterpillar caterpillar23","(cat(a(ract|tonic)|erpillar)) \\1()2(3)",[{parts, 2}]))), <<":caterpillar:erpillar:::3:">> = iolist_to_binary(join(re:split("caterpillar caterpillar23","(cat(a(ract|tonic)|erpillar)) \\1()2(3)",[]))), <<":abcd::02 1997">> = iolist_to_binary(join(re:split("From abcd Mon Sep 01 12:33:02 1997","^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]",[trim]))), <<":abcd::02 1997">> = iolist_to_binary(join(re:split("From abcd Mon Sep 01 12:33:02 1997","^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]",[{parts, 2}]))), <<":abcd::02 1997">> = iolist_to_binary(join(re:split("From abcd Mon Sep 01 12:33:02 1997","^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]",[]))), <<":Sep ::02 1997">> = iolist_to_binary(join(re:split("From abcd Mon Sep 01 12:33:02 1997","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[trim]))), <<":Sep ::02 1997">> = iolist_to_binary(join(re:split("From abcd Mon Sep 01 12:33:02 1997","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[{parts, 2}]))), <<":Sep ::02 1997">> = iolist_to_binary(join(re:split("From abcd Mon Sep 01 12:33:02 1997","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[]))), <<":Sep ::02 1997">> = iolist_to_binary(join(re:split("From abcd Mon Sep 1 12:33:02 1997","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[trim]))), <<":Sep ::02 1997">> = iolist_to_binary(join(re:split("From abcd Mon Sep 1 12:33:02 1997","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[{parts, 2}]))), <<":Sep ::02 1997">> = iolist_to_binary(join(re:split("From abcd Mon Sep 1 12:33:02 1997","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[]))), <<"From abcd Sep 01 12:33:02 1997">> = iolist_to_binary(join(re:split("From abcd Sep 01 12:33:02 1997","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[trim]))), <<"From abcd Sep 01 12:33:02 1997">> = iolist_to_binary(join(re:split("From abcd Sep 01 12:33:02 1997","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[{parts, 2}]))), <<"From abcd Sep 01 12:33:02 1997">> = iolist_to_binary(join(re:split("From abcd Sep 01 12:33:02 1997","^From\\s+\\S+\\s+([a-zA-Z]{3}\\s+){2}\\d{1,2}\\s+\\d\\d:\\d\\d",[]))), <<"">> = iolist_to_binary(join(re:split("12 34","^12.34",[dotall,trim]))), <<":">> = iolist_to_binary(join(re:split("12 34","^12.34",[dotall,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("12 34","^12.34",[dotall]))), <<"">> = iolist_to_binary(join(re:split("12 34","^12.34",[dotall, trim]))), <<":">> = iolist_to_binary(join(re:split("12 34","^12.34",[dotall, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("12 34","^12.34",[dotall]))), <<"the quick : fox">> = iolist_to_binary(join(re:split("the quick brown fox","\\w+(?=\\t)",[trim]))), <<"the quick : fox">> = iolist_to_binary(join(re:split("the quick brown fox","\\w+(?=\\t)",[{parts, 2}]))), <<"the quick : fox">> = iolist_to_binary(join(re:split("the quick brown fox","\\w+(?=\\t)",[]))), <<"foobar is :lish see?">> = iolist_to_binary(join(re:split("foobar is foolish see?","foo(?!bar)(.*)",[trim]))), <<"foobar is :lish see?:">> = iolist_to_binary(join(re:split("foobar is foolish see?","foo(?!bar)(.*)",[{parts, 2}]))), <<"foobar is :lish see?:">> = iolist_to_binary(join(re:split("foobar is foolish see?","foo(?!bar)(.*)",[]))), <<"foobar c: etc">> = iolist_to_binary(join(re:split("foobar crowbar etc","(?:(?!foo)...|^.{0,2})bar(.*)",[trim]))), <<"foobar c: etc:">> = iolist_to_binary(join(re:split("foobar crowbar etc","(?:(?!foo)...|^.{0,2})bar(.*)",[{parts, 2}]))), <<"foobar c: etc:">> = iolist_to_binary(join(re:split("foobar crowbar etc","(?:(?!foo)...|^.{0,2})bar(.*)",[]))), <<":rel">> = iolist_to_binary(join(re:split("barrel","(?:(?!foo)...|^.{0,2})bar(.*)",[trim]))), <<":rel:">> = iolist_to_binary(join(re:split("barrel","(?:(?!foo)...|^.{0,2})bar(.*)",[{parts, 2}]))), <<":rel:">> = iolist_to_binary(join(re:split("barrel","(?:(?!foo)...|^.{0,2})bar(.*)",[]))), <<":rel">> = iolist_to_binary(join(re:split("2barrel","(?:(?!foo)...|^.{0,2})bar(.*)",[trim]))), <<":rel:">> = iolist_to_binary(join(re:split("2barrel","(?:(?!foo)...|^.{0,2})bar(.*)",[{parts, 2}]))), <<":rel:">> = iolist_to_binary(join(re:split("2barrel","(?:(?!foo)...|^.{0,2})bar(.*)",[]))), <<":rel">> = iolist_to_binary(join(re:split("A barrel","(?:(?!foo)...|^.{0,2})bar(.*)",[trim]))), <<":rel:">> = iolist_to_binary(join(re:split("A barrel","(?:(?!foo)...|^.{0,2})bar(.*)",[{parts, 2}]))), <<":rel:">> = iolist_to_binary(join(re:split("A barrel","(?:(?!foo)...|^.{0,2})bar(.*)",[]))), <<":abc:456">> = iolist_to_binary(join(re:split("abc456","^(\\D*)(?=\\d)(?!123)",[trim]))), <<":abc:456">> = iolist_to_binary(join(re:split("abc456","^(\\D*)(?=\\d)(?!123)",[{parts, 2}]))), <<":abc:456">> = iolist_to_binary(join(re:split("abc456","^(\\D*)(?=\\d)(?!123)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\D*)(?=\\d)(?!123)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\D*)(?=\\d)(?!123)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\D*)(?=\\d)(?!123)",[]))), <<"abc123">> = iolist_to_binary(join(re:split("abc123","^(\\D*)(?=\\d)(?!123)",[trim]))), <<"abc123">> = iolist_to_binary(join(re:split("abc123","^(\\D*)(?=\\d)(?!123)",[{parts, 2}]))), <<"abc123">> = iolist_to_binary(join(re:split("abc123","^(\\D*)(?=\\d)(?!123)",[]))), ok. run3() -> <<"">> = iolist_to_binary(join(re:split("1234","^1234(?# test newlines inside)",[trim]))), <<":">> = iolist_to_binary(join(re:split("1234","^1234(?# test newlines inside)",[{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("1234","^1234(?# test newlines inside)",[]))), <<"">> = iolist_to_binary(join(re:split("1234","^1234 #comment in extended re ",[extended,trim]))), <<":">> = iolist_to_binary(join(re:split("1234","^1234 #comment in extended re ",[extended,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("1234","^1234 #comment in extended re ",[extended]))), <<"">> = iolist_to_binary(join(re:split("abcd","#rhubarb abcd",[extended,trim]))), <<":">> = iolist_to_binary(join(re:split("abcd","#rhubarb abcd",[extended,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("abcd","#rhubarb abcd",[extended]))), <<"">> = iolist_to_binary(join(re:split("abcd","^abcd#rhubarb",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("abcd","^abcd#rhubarb",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcd","^abcd#rhubarb",[extended]))), <<":a:b">> = iolist_to_binary(join(re:split("aaab","^(a)\\1{2,3}(.)",[trim]))), <<":a:b:">> = iolist_to_binary(join(re:split("aaab","^(a)\\1{2,3}(.)",[{parts, 2}]))), <<":a:b:">> = iolist_to_binary(join(re:split("aaab","^(a)\\1{2,3}(.)",[]))), <<":a:b">> = iolist_to_binary(join(re:split("aaaab","^(a)\\1{2,3}(.)",[trim]))), <<":a:b:">> = iolist_to_binary(join(re:split("aaaab","^(a)\\1{2,3}(.)",[{parts, 2}]))), <<":a:b:">> = iolist_to_binary(join(re:split("aaaab","^(a)\\1{2,3}(.)",[]))), <<":a:a:b">> = iolist_to_binary(join(re:split("aaaaab","^(a)\\1{2,3}(.)",[trim]))), <<":a:a:b">> = iolist_to_binary(join(re:split("aaaaab","^(a)\\1{2,3}(.)",[{parts, 2}]))), <<":a:a:b">> = iolist_to_binary(join(re:split("aaaaab","^(a)\\1{2,3}(.)",[]))), <<":a:a:ab">> = iolist_to_binary(join(re:split("aaaaaab","^(a)\\1{2,3}(.)",[trim]))), <<":a:a:ab">> = iolist_to_binary(join(re:split("aaaaaab","^(a)\\1{2,3}(.)",[{parts, 2}]))), <<":a:a:ab">> = iolist_to_binary(join(re:split("aaaaaab","^(a)\\1{2,3}(.)",[]))), <<"the ">> = iolist_to_binary(join(re:split("the abc","(?!^)abc",[trim]))), <<"the :">> = iolist_to_binary(join(re:split("the abc","(?!^)abc",[{parts, 2}]))), <<"the :">> = iolist_to_binary(join(re:split("the abc","(?!^)abc",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?!^)abc",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?!^)abc",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?!^)abc",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(?!^)abc",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(?!^)abc",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(?!^)abc",[]))), <<"">> = iolist_to_binary(join(re:split("abc","(?=^)abc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","(?=^)abc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","(?=^)abc",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?=^)abc",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?=^)abc",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?=^)abc",[]))), <<"the abc">> = iolist_to_binary(join(re:split("the abc","(?=^)abc",[trim]))), <<"the abc">> = iolist_to_binary(join(re:split("the abc","(?=^)abc",[{parts, 2}]))), <<"the abc">> = iolist_to_binary(join(re:split("the abc","(?=^)abc",[]))), <<":b:bbb">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}(ab*|b)",[trim]))), <<":b:bbb">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}(ab*|b)",[{parts, 2}]))), <<":b:bbb">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}(ab*|b)",[]))), <<":abbbbb">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}?(ab*|b)",[trim]))), <<":abbbbb:">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}?(ab*|b)",[{parts, 2}]))), <<":abbbbb:">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}?(ab*|b)",[]))), <<":a:bbbbb">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}?(ab*?|b)",[trim]))), <<":a:bbbbb">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}?(ab*?|b)",[{parts, 2}]))), <<":a:bbbbb">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}?(ab*?|b)",[]))), <<":b:bbb">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}(ab*?|b)",[trim]))), <<":b:bbb">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}(ab*?|b)",[{parts, 2}]))), <<":b:bbb">> = iolist_to_binary(join(re:split("aabbbbb","^[ab]{1,3}(ab*?|b)",[]))), <<"Alan Other ">> = iolist_to_binary(join(re:split("Alan Other "," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended,trim]))), <<"Alan Other ">> = iolist_to_binary(join(re:split("Alan Other "," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended, {parts,2}]))), <<"Alan Other ">> = iolist_to_binary(join(re:split("Alan Other "," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended]))), <<"">> = iolist_to_binary(join(re:split(""," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended,trim]))), <<"">> = iolist_to_binary(join(re:split(""," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended, {parts,2}]))), <<"">> = iolist_to_binary(join(re:split(""," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended]))), <<"user.ain">> = iolist_to_binary(join(re:split("user.ain"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended,trim]))), <<"user.ain">> = iolist_to_binary(join(re:split("user.ain"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended, {parts,2}]))), <<"user.ain">> = iolist_to_binary(join(re:split("user.ain"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended]))), <<"\"A. Other\" (a comment)">> = iolist_to_binary(join(re:split("\"A. Other\" (a comment)"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended,trim]))), <<"\"A. Other\" (a comment)">> = iolist_to_binary(join(re:split("\"A. Other\" (a comment)"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended, {parts,2}]))), <<"\"A. Other\" (a comment)">> = iolist_to_binary(join(re:split("\"A. Other\" (a comment)"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended]))), <<"A. Other (a comment)">> = iolist_to_binary(join(re:split("A. Other (a comment)"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended,trim]))), <<"A. Other (a comment)">> = iolist_to_binary(join(re:split("A. Other (a comment)"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended, {parts,2}]))), <<"A. Other (a comment)">> = iolist_to_binary(join(re:split("A. Other (a comment)"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended]))), <<"\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay">> = iolist_to_binary(join(re:split("\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended,trim]))), <<"\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay">> = iolist_to_binary(join(re:split("\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended, {parts,2}]))), <<"\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay">> = iolist_to_binary(join(re:split("\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended]))), <<"A missing angle > = iolist_to_binary(join(re:split("A missing angle @,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended,trim]))), <<"A missing angle > = iolist_to_binary(join(re:split("A missing angle @,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended, {parts,2}]))), <<"A missing angle > = iolist_to_binary(join(re:split("A missing angle @,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended,trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended, {parts,2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended]))), <<"The quick brown fox">> = iolist_to_binary(join(re:split("The quick brown fox"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended,trim]))), <<"The quick brown fox">> = iolist_to_binary(join(re:split("The quick brown fox"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended, {parts,2}]))), <<"The quick brown fox">> = iolist_to_binary(join(re:split("The quick brown fox"," (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # one word, optionally followed by.... (?: [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] | # atom and space parts, or... \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) | # comments, or... \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote # quoted strings )* < (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # leading < (?: @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* , (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* )* # further okay, if led by comma : # closing colon (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) # initial word (?: (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \" (?: # opening quote... [^\\\\\\x80-\\xff\\n\\015\"] # Anything except backslash and quote | # or \\\\ [^\\x80-\\xff] # Escaped something (something != CR) )* \" # closing quote ) )* # further okay, if led by a period (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* @ (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # initial subdomain (?: # (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* \\. # if led by a period... (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) # ...further okay )* # address spec (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* > # trailing > # name and address ) (?: [\\040\\t] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] | \\( (?: [^\\\\\\x80-\\xff\\n\\015()] | \\\\ [^\\x80-\\xff] )* \\) )* \\) )* # optional trailing comment",[extended]))), <<"Alan Other ">> = iolist_to_binary(join(re:split("Alan Other ","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,trim]))), <<"Alan Other ">> = iolist_to_binary(join(re:split("Alan Other ","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,{parts,2}]))), <<"Alan Other ">> = iolist_to_binary(join(re:split("Alan Other ","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended]))), <<"">> = iolist_to_binary(join(re:split("","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,trim]))), <<"">> = iolist_to_binary(join(re:split("","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,{parts,2}]))), <<"">> = iolist_to_binary(join(re:split("","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended]))), <<"user.ain">> = iolist_to_binary(join(re:split("user.ain","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,trim]))), <<"user.ain">> = iolist_to_binary(join(re:split("user.ain","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,{parts,2}]))), <<"user.ain">> = iolist_to_binary(join(re:split("user.ain","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended]))), <<"\"A. Other\" (a comment)">> = iolist_to_binary(join(re:split("\"A. Other\" (a comment)","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,trim]))), <<"\"A. Other\" (a comment)">> = iolist_to_binary(join(re:split("\"A. Other\" (a comment)","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,{parts,2}]))), <<"\"A. Other\" (a comment)">> = iolist_to_binary(join(re:split("\"A. Other\" (a comment)","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended]))), <<"A. Other (a comment)">> = iolist_to_binary(join(re:split("A. Other (a comment)","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,trim]))), <<"A. Other (a comment)">> = iolist_to_binary(join(re:split("A. Other (a comment)","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,{parts,2}]))), <<"A. Other (a comment)">> = iolist_to_binary(join(re:split("A. Other (a comment)","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended]))), <<"\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay">> = iolist_to_binary(join(re:split("\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,trim]))), <<"\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay">> = iolist_to_binary(join(re:split("\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,{parts,2}]))), <<"\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay">> = iolist_to_binary(join(re:split("\"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"-re.lay","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended]))), <<"A missing angle > = iolist_to_binary(join(re:split("A missing angle @,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,trim]))), <<"A missing angle > = iolist_to_binary(join(re:split("A missing angle @,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,{parts,2}]))), <<"A missing angle > = iolist_to_binary(join(re:split("A missing angle @,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,{parts,2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended]))), <<"The quick brown fox">> = iolist_to_binary(join(re:split("The quick brown fox","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,trim]))), <<"The quick brown fox">> = iolist_to_binary(join(re:split("The quick brown fox","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended,{parts,2}]))), <<"The quick brown fox">> = iolist_to_binary(join(re:split("The quick brown fox","[\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional leading comment (?: (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address | # or (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) # leading word [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # \"normal\" atoms and or spaces (?: (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) | \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" ) # \"special\" comment or quoted string [^()<>@,;:\".\\\\\\[\\]\\x80-\\xff\\000-\\010\\012-\\037] * # more \"normal\" )* < [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # < (?: @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* (?: , [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* )* # additional domains : [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )? # optional route (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom # Atom | # or \" # \" [^\\\\\\x80-\\xff\\n\\015\"] * # normal (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015\"] * )* # ( special normal* )* \" # \" # Quoted string ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # additional words )* @ [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments (?: \\. [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. (?: [^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]+ # some number of atom characters... (?![^(\\040)<>@,;:\".\\\\\\[\\]\\000-\\037\\x80-\\xff]) # ..not followed by something that could be part of an atom | \\[ # [ (?: [^\\\\\\x80-\\xff\\n\\015\\[\\]] | \\\\ [^\\x80-\\xff] )* # stuff \\] # ] ) [\\040\\t]* # Nab whitespace. (?: \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: # ( (?: \\\\ [^\\x80-\\xff] | \\( # ( [^\\\\\\x80-\\xff\\n\\015()] * # normal* (?: \\\\ [^\\x80-\\xff] [^\\\\\\x80-\\xff\\n\\015()] * )* # (special normal*)* \\) # ) ) # special [^\\\\\\x80-\\xff\\n\\015()] * # normal* )* # )* \\) # ) [\\040\\t]* )* # If comment found, allow more spaces. # optional trailing comments )* # address spec > # > # name and address )",[extended]))), <<"abcdefpqrxyz0AB">> = iolist_to_binary(join(re:split("abcdefpqrxyz0AB","abc\\0def\\00pqr\\000xyz\\0000AB",[trim]))), <<"abcdefpqrxyz0AB">> = iolist_to_binary(join(re:split("abcdefpqrxyz0AB","abc\\0def\\00pqr\\000xyz\\0000AB",[{parts, 2}]))), <<"abcdefpqrxyz0AB">> = iolist_to_binary(join(re:split("abcdefpqrxyz0AB","abc\\0def\\00pqr\\000xyz\\0000AB",[]))), <<"abc456 abcdefpqrxyz0ABCDE">> = iolist_to_binary(join(re:split("abc456 abcdefpqrxyz0ABCDE","abc\\0def\\00pqr\\000xyz\\0000AB",[trim]))), <<"abc456 abcdefpqrxyz0ABCDE">> = iolist_to_binary(join(re:split("abc456 abcdefpqrxyz0ABCDE","abc\\0def\\00pqr\\000xyz\\0000AB",[{parts, 2}]))), <<"abc456 abcdefpqrxyz0ABCDE">> = iolist_to_binary(join(re:split("abc456 abcdefpqrxyz0ABCDE","abc\\0def\\00pqr\\000xyz\\0000AB",[]))), <<"abc efpqr0xyz00AB">> = iolist_to_binary(join(re:split("abc efpqr0xyz00AB","abc\\x0def\\x00pqr\\x000xyz\\x0000AB",[trim]))), <<"abc efpqr0xyz00AB">> = iolist_to_binary(join(re:split("abc efpqr0xyz00AB","abc\\x0def\\x00pqr\\x000xyz\\x0000AB",[{parts, 2}]))), <<"abc efpqr0xyz00AB">> = iolist_to_binary(join(re:split("abc efpqr0xyz00AB","abc\\x0def\\x00pqr\\x000xyz\\x0000AB",[]))), <<"abc456 abc efpqr0xyz00ABCDE">> = iolist_to_binary(join(re:split("abc456 abc efpqr0xyz00ABCDE","abc\\x0def\\x00pqr\\x000xyz\\x0000AB",[trim]))), <<"abc456 abc efpqr0xyz00ABCDE">> = iolist_to_binary(join(re:split("abc456 abc efpqr0xyz00ABCDE","abc\\x0def\\x00pqr\\x000xyz\\x0000AB",[{parts, 2}]))), <<"abc456 abc efpqr0xyz00ABCDE">> = iolist_to_binary(join(re:split("abc456 abc efpqr0xyz00ABCDE","abc\\x0def\\x00pqr\\x000xyz\\x0000AB",[]))), <<"A">> = iolist_to_binary(join(re:split("A","^[\\000-\\037]",[trim]))), <<"A">> = iolist_to_binary(join(re:split("A","^[\\000-\\037]",[{parts, 2}]))), <<"A">> = iolist_to_binary(join(re:split("A","^[\\000-\\037]",[]))), <<":B">> = iolist_to_binary(join(re:split("B","^[\\000-\\037]",[trim]))), <<":B">> = iolist_to_binary(join(re:split("B","^[\\000-\\037]",[{parts, 2}]))), <<":B">> = iolist_to_binary(join(re:split("B","^[\\000-\\037]",[]))), <<":C">> = iolist_to_binary(join(re:split("C","^[\\000-\\037]",[trim]))), <<":C">> = iolist_to_binary(join(re:split("C","^[\\000-\\037]",[{parts, 2}]))), <<":C">> = iolist_to_binary(join(re:split("C","^[\\000-\\037]",[]))), <<"">> = iolist_to_binary(join(re:split("","\\0*",[trim]))), <<"">> = iolist_to_binary(join(re:split("","\\0*",[{parts, 2}]))), <<"">> = iolist_to_binary(join(re:split("","\\0*",[]))), <<"The AZ">> = iolist_to_binary(join(re:split("The AZ","A\\x0{2,3}Z",[trim]))), <<"The AZ">> = iolist_to_binary(join(re:split("The AZ","A\\x0{2,3}Z",[{parts, 2}]))), <<"The AZ">> = iolist_to_binary(join(re:split("The AZ","A\\x0{2,3}Z",[]))), <<"An AZ">> = iolist_to_binary(join(re:split("An AZ","A\\x0{2,3}Z",[trim]))), <<"An AZ">> = iolist_to_binary(join(re:split("An AZ","A\\x0{2,3}Z",[{parts, 2}]))), <<"An AZ">> = iolist_to_binary(join(re:split("An AZ","A\\x0{2,3}Z",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","A\\x0{2,3}Z",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","A\\x0{2,3}Z",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","A\\x0{2,3}Z",[]))), <<"AZ">> = iolist_to_binary(join(re:split("AZ","A\\x0{2,3}Z",[trim]))), <<"AZ">> = iolist_to_binary(join(re:split("AZ","A\\x0{2,3}Z",[{parts, 2}]))), <<"AZ">> = iolist_to_binary(join(re:split("AZ","A\\x0{2,3}Z",[]))), <<"AZ">> = iolist_to_binary(join(re:split("AZ","A\\x0{2,3}Z",[trim]))), <<"AZ">> = iolist_to_binary(join(re:split("AZ","A\\x0{2,3}Z",[{parts, 2}]))), <<"AZ">> = iolist_to_binary(join(re:split("AZ","A\\x0{2,3}Z",[]))), <<":cow:bell">> = iolist_to_binary(join(re:split("cowcowbell","^(cow|)\\1(bell)",[trim]))), <<":cow:bell:">> = iolist_to_binary(join(re:split("cowcowbell","^(cow|)\\1(bell)",[{parts, 2}]))), <<":cow:bell:">> = iolist_to_binary(join(re:split("cowcowbell","^(cow|)\\1(bell)",[]))), <<"::bell">> = iolist_to_binary(join(re:split("bell","^(cow|)\\1(bell)",[trim]))), <<"::bell:">> = iolist_to_binary(join(re:split("bell","^(cow|)\\1(bell)",[{parts, 2}]))), <<"::bell:">> = iolist_to_binary(join(re:split("bell","^(cow|)\\1(bell)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(cow|)\\1(bell)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(cow|)\\1(bell)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(cow|)\\1(bell)",[]))), <<"cowbell">> = iolist_to_binary(join(re:split("cowbell","^(cow|)\\1(bell)",[trim]))), <<"cowbell">> = iolist_to_binary(join(re:split("cowbell","^(cow|)\\1(bell)",[{parts, 2}]))), <<"cowbell">> = iolist_to_binary(join(re:split("cowbell","^(cow|)\\1(bell)",[]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[trim]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[{parts, 2}]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[trim]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[{parts, 2}]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[trim]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[{parts,2}]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[trim]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[{parts, 2}]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[trim]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[{parts, 2}]))), <<":abc">> = iolist_to_binary(join(re:split(" abc","^\\s",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\s",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\s",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\s",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^\\s",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^\\s",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^\\s",[]))), ok. run4() -> <<"">> = iolist_to_binary(join(re:split("abc","^a b c",[extended,trim]))), <<":">> = iolist_to_binary(join(re:split("abc","^a b c",[extended,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("abc","^a b c",[extended]))), <<":a">> = iolist_to_binary(join(re:split("ab","^(a|)\\1*b",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("ab","^(a|)\\1*b",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("ab","^(a|)\\1*b",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1*b",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1*b",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1*b",[]))), <<"">> = iolist_to_binary(join(re:split("b","^(a|)\\1*b",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a|)\\1*b",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a|)\\1*b",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1*b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1*b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1*b",[]))), <<"acb">> = iolist_to_binary(join(re:split("acb","^(a|)\\1*b",[trim]))), <<"acb">> = iolist_to_binary(join(re:split("acb","^(a|)\\1*b",[{parts, 2}]))), <<"acb">> = iolist_to_binary(join(re:split("acb","^(a|)\\1*b",[]))), <<":a">> = iolist_to_binary(join(re:split("aab","^(a|)\\1+b",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aab","^(a|)\\1+b",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aab","^(a|)\\1+b",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1+b",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1+b",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1+b",[]))), <<"">> = iolist_to_binary(join(re:split("b","^(a|)\\1+b",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a|)\\1+b",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a|)\\1+b",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1+b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1+b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1+b",[]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a|)\\1+b",[trim]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a|)\\1+b",[{parts, 2}]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a|)\\1+b",[]))), <<":a">> = iolist_to_binary(join(re:split("ab","^(a|)\\1?b",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("ab","^(a|)\\1?b",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("ab","^(a|)\\1?b",[]))), <<":a">> = iolist_to_binary(join(re:split("aab","^(a|)\\1?b",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aab","^(a|)\\1?b",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aab","^(a|)\\1?b",[]))), <<"">> = iolist_to_binary(join(re:split("b","^(a|)\\1?b",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a|)\\1?b",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a|)\\1?b",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1?b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1?b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1?b",[]))), <<"acb">> = iolist_to_binary(join(re:split("acb","^(a|)\\1?b",[trim]))), <<"acb">> = iolist_to_binary(join(re:split("acb","^(a|)\\1?b",[{parts, 2}]))), <<"acb">> = iolist_to_binary(join(re:split("acb","^(a|)\\1?b",[]))), <<":a">> = iolist_to_binary(join(re:split("aaab","^(a|)\\1{2}b",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaab","^(a|)\\1{2}b",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaab","^(a|)\\1{2}b",[]))), <<"">> = iolist_to_binary(join(re:split("b","^(a|)\\1{2}b",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a|)\\1{2}b",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a|)\\1{2}b",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1{2}b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1{2}b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1{2}b",[]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a|)\\1{2}b",[trim]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a|)\\1{2}b",[{parts, 2}]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a|)\\1{2}b",[]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^(a|)\\1{2}b",[trim]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^(a|)\\1{2}b",[{parts, 2}]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^(a|)\\1{2}b",[]))), <<"aaaab">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1{2}b",[trim]))), <<"aaaab">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1{2}b",[{parts, 2}]))), <<"aaaab">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1{2}b",[]))), <<":a">> = iolist_to_binary(join(re:split("aaab","^(a|)\\1{2,3}b",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaab","^(a|)\\1{2,3}b",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaab","^(a|)\\1{2,3}b",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1{2,3}b",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1{2,3}b",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaaab","^(a|)\\1{2,3}b",[]))), <<"">> = iolist_to_binary(join(re:split("b","^(a|)\\1{2,3}b",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a|)\\1{2,3}b",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a|)\\1{2,3}b",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1{2,3}b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1{2,3}b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a|)\\1{2,3}b",[]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a|)\\1{2,3}b",[trim]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a|)\\1{2,3}b",[{parts, 2}]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a|)\\1{2,3}b",[]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^(a|)\\1{2,3}b",[trim]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^(a|)\\1{2,3}b",[{parts, 2}]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^(a|)\\1{2,3}b",[]))), <<"aaaaab">> = iolist_to_binary(join(re:split("aaaaab","^(a|)\\1{2,3}b",[trim]))), <<"aaaaab">> = iolist_to_binary(join(re:split("aaaaab","^(a|)\\1{2,3}b",[{parts, 2}]))), <<"aaaaab">> = iolist_to_binary(join(re:split("aaaaab","^(a|)\\1{2,3}b",[]))), <<"">> = iolist_to_binary(join(re:split("abbbbc","ab{1,3}bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab{1,3}bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab{1,3}bc",[]))), <<"">> = iolist_to_binary(join(re:split("abbbc","ab{1,3}bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbbc","ab{1,3}bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbbc","ab{1,3}bc",[]))), <<"">> = iolist_to_binary(join(re:split("abbc","ab{1,3}bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbc","ab{1,3}bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbc","ab{1,3}bc",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab{1,3}bc",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab{1,3}bc",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab{1,3}bc",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","ab{1,3}bc",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","ab{1,3}bc",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","ab{1,3}bc",[]))), <<"abbbbbc">> = iolist_to_binary(join(re:split("abbbbbc","ab{1,3}bc",[trim]))), <<"abbbbbc">> = iolist_to_binary(join(re:split("abbbbbc","ab{1,3}bc",[{parts, 2}]))), <<"abbbbbc">> = iolist_to_binary(join(re:split("abbbbbc","ab{1,3}bc",[]))), <<":track1:title:Blah blah blah">> = iolist_to_binary(join(re:split("track1.title:TBlah blah blah","([^.]*)\\.([^:]*):[T ]+(.*)",[trim]))), <<":track1:title:Blah blah blah:">> = iolist_to_binary(join(re:split("track1.title:TBlah blah blah","([^.]*)\\.([^:]*):[T ]+(.*)",[{parts, 2}]))), <<":track1:title:Blah blah blah:">> = iolist_to_binary(join(re:split("track1.title:TBlah blah blah","([^.]*)\\.([^:]*):[T ]+(.*)",[]))), <<":track1:title:Blah blah blah">> = iolist_to_binary(join(re:split("track1.title:TBlah blah blah","([^.]*)\\.([^:]*):[T ]+(.*)",[caseless, trim]))), <<":track1:title:Blah blah blah:">> = iolist_to_binary(join(re:split("track1.title:TBlah blah blah","([^.]*)\\.([^:]*):[T ]+(.*)",[caseless, {parts, 2}]))), <<":track1:title:Blah blah blah:">> = iolist_to_binary(join(re:split("track1.title:TBlah blah blah","([^.]*)\\.([^:]*):[T ]+(.*)",[caseless]))), <<":track1:title:Blah blah blah">> = iolist_to_binary(join(re:split("track1.title:TBlah blah blah","([^.]*)\\.([^:]*):[t ]+(.*)",[caseless, trim]))), <<":track1:title:Blah blah blah:">> = iolist_to_binary(join(re:split("track1.title:TBlah blah blah","([^.]*)\\.([^:]*):[t ]+(.*)",[caseless, {parts, 2}]))), <<":track1:title:Blah blah blah:">> = iolist_to_binary(join(re:split("track1.title:TBlah blah blah","([^.]*)\\.([^:]*):[t ]+(.*)",[caseless]))), <<"">> = iolist_to_binary(join(re:split("WXY_^abc","^[W-c]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("WXY_^abc","^[W-c]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("WXY_^abc","^[W-c]+$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[W-c]+$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[W-c]+$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[W-c]+$",[]))), <<"wxy">> = iolist_to_binary(join(re:split("wxy","^[W-c]+$",[trim]))), <<"wxy">> = iolist_to_binary(join(re:split("wxy","^[W-c]+$",[{parts, 2}]))), <<"wxy">> = iolist_to_binary(join(re:split("wxy","^[W-c]+$",[]))), <<"">> = iolist_to_binary(join(re:split("WXY_^abc","^[W-c]+$",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("WXY_^abc","^[W-c]+$",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("WXY_^abc","^[W-c]+$",[caseless]))), <<"">> = iolist_to_binary(join(re:split("wxy_^ABC","^[W-c]+$",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("wxy_^ABC","^[W-c]+$",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("wxy_^ABC","^[W-c]+$",[caseless]))), <<"">> = iolist_to_binary(join(re:split("WXY_^abc","^[\\x3f-\\x5F]+$",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("WXY_^abc","^[\\x3f-\\x5F]+$",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("WXY_^abc","^[\\x3f-\\x5F]+$",[caseless]))), <<"">> = iolist_to_binary(join(re:split("wxy_^ABC","^[\\x3f-\\x5F]+$",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("wxy_^ABC","^[\\x3f-\\x5F]+$",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("wxy_^ABC","^[\\x3f-\\x5F]+$",[caseless]))), <<"">> = iolist_to_binary(join(re:split("abc","^abc$",[multiline, trim]))), <<":">> = iolist_to_binary(join(re:split("abc","^abc$",[multiline, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","^abc$",[multiline]))), <<"qqq ">> = iolist_to_binary(join(re:split("qqq abc","^abc$",[multiline,trim]))), <<"qqq :">> = iolist_to_binary(join(re:split("qqq abc","^abc$",[multiline,{parts,2}]))), <<"qqq :">> = iolist_to_binary(join(re:split("qqq abc","^abc$",[multiline]))), <<": zzz">> = iolist_to_binary(join(re:split("abc zzz","^abc$",[multiline,trim]))), <<": zzz">> = iolist_to_binary(join(re:split("abc zzz","^abc$",[multiline,{parts,2}]))), <<": zzz">> = iolist_to_binary(join(re:split("abc zzz","^abc$",[multiline]))), <<"qqq : zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","^abc$",[multiline,trim]))), <<"qqq : zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","^abc$",[multiline,{parts,2}]))), <<"qqq : zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","^abc$",[multiline]))), <<"">> = iolist_to_binary(join(re:split("abc","^abc$",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","^abc$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","^abc$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^abc$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^abc$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^abc$",[]))), <<"qqq abc">> = iolist_to_binary(join(re:split("qqq abc","^abc$",[trim]))), <<"qqq abc">> = iolist_to_binary(join(re:split("qqq abc","^abc$",[{parts,2}]))), <<"qqq abc">> = iolist_to_binary(join(re:split("qqq abc","^abc$",[]))), <<"abc zzz">> = iolist_to_binary(join(re:split("abc zzz","^abc$",[trim]))), <<"abc zzz">> = iolist_to_binary(join(re:split("abc zzz","^abc$",[{parts,2}]))), <<"abc zzz">> = iolist_to_binary(join(re:split("abc zzz","^abc$",[]))), <<"qqq abc zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","^abc$",[trim]))), <<"qqq abc zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","^abc$",[{parts,2}]))), <<"qqq abc zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","^abc$",[]))), <<"">> = iolist_to_binary(join(re:split("abc","\\Aabc\\Z",[multiline, trim]))), <<":">> = iolist_to_binary(join(re:split("abc","\\Aabc\\Z",[multiline, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","\\Aabc\\Z",[multiline]))), <<"">> = iolist_to_binary(join(re:split("abc","\\Aabc\\Z",[multiline, trim]))), <<":">> = iolist_to_binary(join(re:split("abc","\\Aabc\\Z",[multiline, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","\\Aabc\\Z",[multiline]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\Aabc\\Z",[multiline, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\Aabc\\Z",[multiline, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\Aabc\\Z",[multiline]))), <<"qqq abc">> = iolist_to_binary(join(re:split("qqq abc","\\Aabc\\Z",[multiline,trim]))), <<"qqq abc">> = iolist_to_binary(join(re:split("qqq abc","\\Aabc\\Z",[multiline,{parts,2}]))), <<"qqq abc">> = iolist_to_binary(join(re:split("qqq abc","\\Aabc\\Z",[multiline]))), <<"abc zzz">> = iolist_to_binary(join(re:split("abc zzz","\\Aabc\\Z",[multiline,trim]))), <<"abc zzz">> = iolist_to_binary(join(re:split("abc zzz","\\Aabc\\Z",[multiline,{parts,2}]))), <<"abc zzz">> = iolist_to_binary(join(re:split("abc zzz","\\Aabc\\Z",[multiline]))), <<"qqq abc zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","\\Aabc\\Z",[multiline,trim]))), <<"qqq abc zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","\\Aabc\\Z",[multiline,{parts,2}]))), <<"qqq abc zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","\\Aabc\\Z",[multiline]))), <<":f">> = iolist_to_binary(join(re:split("abc def","\\A(.)*\\Z",[dotall,trim]))), <<":f:">> = iolist_to_binary(join(re:split("abc def","\\A(.)*\\Z",[dotall,{parts,2}]))), <<":f:">> = iolist_to_binary(join(re:split("abc def","\\A(.)*\\Z",[dotall]))), <<":s">> = iolist_to_binary(join(re:split("*** Failers","\\A(.)*\\Z",[multiline, trim]))), <<":s:">> = iolist_to_binary(join(re:split("*** Failers","\\A(.)*\\Z",[multiline, {parts, 2}]))), <<":s:">> = iolist_to_binary(join(re:split("*** Failers","\\A(.)*\\Z",[multiline]))), <<"abc def">> = iolist_to_binary(join(re:split("abc def","\\A(.)*\\Z",[multiline,trim]))), <<"abc def">> = iolist_to_binary(join(re:split("abc def","\\A(.)*\\Z",[multiline,{parts,2}]))), <<"abc def">> = iolist_to_binary(join(re:split("abc def","\\A(.)*\\Z",[multiline]))), <<"::c">> = iolist_to_binary(join(re:split("b::c","(?:b)|(?::+)",[trim]))), <<":::c">> = iolist_to_binary(join(re:split("b::c","(?:b)|(?::+)",[{parts, 2}]))), <<"::c">> = iolist_to_binary(join(re:split("b::c","(?:b)|(?::+)",[]))), <<"c">> = iolist_to_binary(join(re:split("c::b","(?:b)|(?::+)",[trim]))), <<"c:b">> = iolist_to_binary(join(re:split("c::b","(?:b)|(?::+)",[{parts, 2}]))), <<"c::">> = iolist_to_binary(join(re:split("c::b","(?:b)|(?::+)",[]))), <<"">> = iolist_to_binary(join(re:split("az-","[-az]+",[trim]))), <<":">> = iolist_to_binary(join(re:split("az-","[-az]+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("az-","[-az]+",[]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[-az]+",[trim]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[-az]+",[{parts, 2}]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[-az]+",[]))), <<"b">> = iolist_to_binary(join(re:split("b","[-az]+",[trim]))), <<"b">> = iolist_to_binary(join(re:split("b","[-az]+",[{parts, 2}]))), <<"b">> = iolist_to_binary(join(re:split("b","[-az]+",[]))), ok. run5() -> <<"">> = iolist_to_binary(join(re:split("za-","[az-]+",[trim]))), <<":">> = iolist_to_binary(join(re:split("za-","[az-]+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("za-","[az-]+",[]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[az-]+",[trim]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[az-]+",[{parts, 2}]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[az-]+",[]))), <<"b">> = iolist_to_binary(join(re:split("b","[az-]+",[trim]))), <<"b">> = iolist_to_binary(join(re:split("b","[az-]+",[{parts, 2}]))), <<"b">> = iolist_to_binary(join(re:split("b","[az-]+",[]))), <<"">> = iolist_to_binary(join(re:split("a-z","[a\\-z]+",[trim]))), <<":">> = iolist_to_binary(join(re:split("a-z","[a\\-z]+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a-z","[a\\-z]+",[]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[a\\-z]+",[trim]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[a\\-z]+",[{parts, 2}]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[a\\-z]+",[]))), <<"b">> = iolist_to_binary(join(re:split("b","[a\\-z]+",[trim]))), <<"b">> = iolist_to_binary(join(re:split("b","[a\\-z]+",[{parts, 2}]))), <<"b">> = iolist_to_binary(join(re:split("b","[a\\-z]+",[]))), <<"">> = iolist_to_binary(join(re:split("abcdxyz","[a-z]+",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcdxyz","[a-z]+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcdxyz","[a-z]+",[]))), <<"">> = iolist_to_binary(join(re:split("12-34","[\\d-]+",[trim]))), <<":">> = iolist_to_binary(join(re:split("12-34","[\\d-]+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("12-34","[\\d-]+",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\d-]+",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\d-]+",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\d-]+",[]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","[\\d-]+",[trim]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","[\\d-]+",[{parts, 2}]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","[\\d-]+",[]))), <<"">> = iolist_to_binary(join(re:split("12-34z","[\\d-z]+",[trim]))), <<":">> = iolist_to_binary(join(re:split("12-34z","[\\d-z]+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("12-34z","[\\d-z]+",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\d-z]+",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\d-z]+",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\d-z]+",[]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","[\\d-z]+",[trim]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","[\\d-z]+",[{parts, 2}]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","[\\d-z]+",[]))), <<": ">> = iolist_to_binary(join(re:split("\\ ","\\x5c",[trim]))), <<": ">> = iolist_to_binary(join(re:split("\\ ","\\x5c",[{parts, 2}]))), <<": ">> = iolist_to_binary(join(re:split("\\ ","\\x5c",[]))), <<"the:oo">> = iolist_to_binary(join(re:split("the Zoo","\\x20Z",[trim]))), <<"the:oo">> = iolist_to_binary(join(re:split("the Zoo","\\x20Z",[{parts, 2}]))), <<"the:oo">> = iolist_to_binary(join(re:split("the Zoo","\\x20Z",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\x20Z",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\x20Z",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\x20Z",[]))), <<"Zulu">> = iolist_to_binary(join(re:split("Zulu","\\x20Z",[trim]))), <<"Zulu">> = iolist_to_binary(join(re:split("Zulu","\\x20Z",[{parts, 2}]))), <<"Zulu">> = iolist_to_binary(join(re:split("Zulu","\\x20Z",[]))), <<":abc">> = iolist_to_binary(join(re:split("abcabc","(abc)\\1",[caseless, trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","(abc)\\1",[caseless, {parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","(abc)\\1",[caseless]))), <<":ABC">> = iolist_to_binary(join(re:split("ABCabc","(abc)\\1",[caseless, trim]))), <<":ABC:">> = iolist_to_binary(join(re:split("ABCabc","(abc)\\1",[caseless, {parts, 2}]))), <<":ABC:">> = iolist_to_binary(join(re:split("ABCabc","(abc)\\1",[caseless]))), <<":abc">> = iolist_to_binary(join(re:split("abcABC","(abc)\\1",[caseless, trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcABC","(abc)\\1",[caseless, {parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcABC","(abc)\\1",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ab{3cd","ab{3cd",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab{3cd","ab{3cd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab{3cd","ab{3cd",[]))), <<"">> = iolist_to_binary(join(re:split("ab{3,cd","ab{3,cd",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab{3,cd","ab{3,cd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab{3,cd","ab{3,cd",[]))), <<"">> = iolist_to_binary(join(re:split("ab{3,4a}cd","ab{3,4a}cd",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab{3,4a}cd","ab{3,4a}cd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab{3,4a}cd","ab{3,4a}cd",[]))), <<"">> = iolist_to_binary(join(re:split("{4,5a}bc","{4,5a}bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("{4,5a}bc","{4,5a}bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("{4,5a}bc","{4,5a}bc",[]))), <<"">> = iolist_to_binary(join(re:split("abc","abc$",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","abc$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","abc$",[]))), <<"">> = iolist_to_binary(join(re:split("abc","abc$",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","abc$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","abc$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc$",[]))), <<"abc def">> = iolist_to_binary(join(re:split("abc def","abc$",[trim]))), <<"abc def">> = iolist_to_binary(join(re:split("abc def","abc$",[{parts,2}]))), <<"abc def">> = iolist_to_binary(join(re:split("abc def","abc$",[]))), <<":abc">> = iolist_to_binary(join(re:split("abcS","(abc)\\123",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcS","(abc)\\123",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcS","(abc)\\123",[]))), <<":abc">> = iolist_to_binary(join(re:split("abc“","(abc)\\223",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abc“","(abc)\\223",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abc“","(abc)\\223",[]))), <<":abc">> = iolist_to_binary(join(re:split("abcÓ","(abc)\\323",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcÓ","(abc)\\323",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcÓ","(abc)\\323",[]))), <<":abc">> = iolist_to_binary(join(re:split("abc@","(abc)\\100",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abc@","(abc)\\100",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abc@","(abc)\\100",[]))), <<":abc">> = iolist_to_binary(join(re:split("abc@","(abc)\\100",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abc@","(abc)\\100",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abc@","(abc)\\100",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1000",[]))), <<":A:B:C:D:E:F:G:H:I">> = iolist_to_binary(join(re:split("ABCDEFGHIHI","^(A)(B)(C)(D)(E)(F)(G)(H)(I)\\8\\9$",[trim]))), <<":A:B:C:D:E:F:G:H:I:">> = iolist_to_binary(join(re:split("ABCDEFGHIHI","^(A)(B)(C)(D)(E)(F)(G)(H)(I)\\8\\9$",[{parts, 2}]))), <<":A:B:C:D:E:F:G:H:I:">> = iolist_to_binary(join(re:split("ABCDEFGHIHI","^(A)(B)(C)(D)(E)(F)(G)(H)(I)\\8\\9$",[]))), ok. run6() -> <<"">> = iolist_to_binary(join(re:split("A8B9C","^[A\\8B\\9C]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("A8B9C","^[A\\8B\\9C]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("A8B9C","^[A\\8B\\9C]+$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[A\\8B\\9C]+$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[A\\8B\\9C]+$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[A\\8B\\9C]+$",[]))), <<"">> = iolist_to_binary(join(re:split("A8B9C","^[A\\8B\\9C]+$",[trim]))), <<":">> = iolist_to_binary(join(re:split("A8B9C","^[A\\8B\\9C]+$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("A8B9C","^[A\\8B\\9C]+$",[]))), <<":a:b:c:d:e:f:g:h:i:j:k:l">> = iolist_to_binary(join(re:split("abcdefghijkllS","(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\12\\123",[trim]))), <<":a:b:c:d:e:f:g:h:i:j:k:l:">> = iolist_to_binary(join(re:split("abcdefghijkllS","(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\12\\123",[{parts, 2}]))), <<":a:b:c:d:e:f:g:h:i:j:k:l:">> = iolist_to_binary(join(re:split("abcdefghijkllS","(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\12\\123",[]))), <<":a:b:c:d:e:f:g:h:i:j:k">> = iolist_to_binary(join(re:split("abcdefghijk S","(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123",[trim]))), <<":a:b:c:d:e:f:g:h:i:j:k:">> = iolist_to_binary(join(re:split("abcdefghijk S","(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123",[{parts,2}]))), <<":a:b:c:d:e:f:g:h:i:j:k:">> = iolist_to_binary(join(re:split("abcdefghijk S","(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\\12\\123",[]))), <<"">> = iolist_to_binary(join(re:split("abidef","ab\\idef",[trim]))), <<":">> = iolist_to_binary(join(re:split("abidef","ab\\idef",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abidef","ab\\idef",[]))), <<"">> = iolist_to_binary(join(re:split("bc","a{0}bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("bc","a{0}bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("bc","a{0}bc",[]))), <<"">> = iolist_to_binary(join(re:split("xyz","(a|(bc)){0,0}?xyz",[trim]))), <<":::">> = iolist_to_binary(join(re:split("xyz","(a|(bc)){0,0}?xyz",[{parts, 2}]))), <<":::">> = iolist_to_binary(join(re:split("xyz","(a|(bc)){0,0}?xyz",[]))), <<"">> = iolist_to_binary(join(re:split("abcde","abc[\\10]de",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcde","abc[\\10]de",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcde","abc[\\10]de",[]))), <<"">> = iolist_to_binary(join(re:split("abcde","abc[\\1]de",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcde","abc[\\1]de",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcde","abc[\\1]de",[]))), <<":abc">> = iolist_to_binary(join(re:split("abcde","(abc)[\\1]de",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcde","(abc)[\\1]de",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcde","(abc)[\\1]de",[]))), <<"">> = iolist_to_binary(join(re:split("a b","(?s)a.b",[trim]))), <<":">> = iolist_to_binary(join(re:split("a b","(?s)a.b",[{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("a b","(?s)a.b",[]))), <<":b:a:NOT:cccc:d">> = iolist_to_binary(join(re:split("baNOTccccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[trim]))), <<":b:a:NOT:cccc:d">> = iolist_to_binary(join(re:split("baNOTccccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[{parts, 2}]))), <<":b:a:NOT:cccc:d">> = iolist_to_binary(join(re:split("baNOTccccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[]))), <<":b:a:NOT:ccc:d">> = iolist_to_binary(join(re:split("baNOTcccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[trim]))), <<":b:a:NOT:ccc:d">> = iolist_to_binary(join(re:split("baNOTcccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[{parts, 2}]))), <<":b:a:NOT:ccc:d">> = iolist_to_binary(join(re:split("baNOTcccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[]))), <<":b:a:NO:Tcc:d">> = iolist_to_binary(join(re:split("baNOTccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[trim]))), <<":b:a:NO:Tcc:d">> = iolist_to_binary(join(re:split("baNOTccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[{parts, 2}]))), <<":b:a:NO:Tcc:d">> = iolist_to_binary(join(re:split("baNOTccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[]))), <<":b:a::ccc:d">> = iolist_to_binary(join(re:split("bacccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[trim]))), <<":b:a::ccc:d">> = iolist_to_binary(join(re:split("bacccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[{parts, 2}]))), <<":b:a::ccc:d">> = iolist_to_binary(join(re:split("bacccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[]))), <<":*:*:* Fail:ers">> = iolist_to_binary(join(re:split("*** Failers","^([^a])([^\\b])([^c]*)([^d]{3,4})",[trim]))), <<":*:*:* Fail:ers:">> = iolist_to_binary(join(re:split("*** Failers","^([^a])([^\\b])([^c]*)([^d]{3,4})",[{parts, 2}]))), <<":*:*:* Fail:ers:">> = iolist_to_binary(join(re:split("*** Failers","^([^a])([^\\b])([^c]*)([^d]{3,4})",[]))), <<"anything">> = iolist_to_binary(join(re:split("anything","^([^a])([^\\b])([^c]*)([^d]{3,4})",[trim]))), <<"anything">> = iolist_to_binary(join(re:split("anything","^([^a])([^\\b])([^c]*)([^d]{3,4})",[{parts, 2}]))), <<"anything">> = iolist_to_binary(join(re:split("anything","^([^a])([^\\b])([^c]*)([^d]{3,4})",[]))), <<"bc">> = iolist_to_binary(join(re:split("bc","^([^a])([^\\b])([^c]*)([^d]{3,4})",[trim]))), <<"bc">> = iolist_to_binary(join(re:split("bc","^([^a])([^\\b])([^c]*)([^d]{3,4})",[{parts, 2}]))), <<"bc">> = iolist_to_binary(join(re:split("bc","^([^a])([^\\b])([^c]*)([^d]{3,4})",[]))), <<"baccd">> = iolist_to_binary(join(re:split("baccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[trim]))), <<"baccd">> = iolist_to_binary(join(re:split("baccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[{parts, 2}]))), <<"baccd">> = iolist_to_binary(join(re:split("baccd","^([^a])([^\\b])([^c]*)([^d]{3,4})",[]))), <<"">> = iolist_to_binary(join(re:split("Abc","[^a]",[trim]))), <<":bc">> = iolist_to_binary(join(re:split("Abc","[^a]",[{parts, 2}]))), <<":::">> = iolist_to_binary(join(re:split("Abc","[^a]",[]))), <<"A">> = iolist_to_binary(join(re:split("Abc","[^a]",[caseless, trim]))), <<"A:c">> = iolist_to_binary(join(re:split("Abc","[^a]",[caseless, {parts, 2}]))), <<"A::">> = iolist_to_binary(join(re:split("Abc","[^a]",[caseless]))), <<":a">> = iolist_to_binary(join(re:split("AAAaAbc","[^a]+",[trim]))), <<":aAbc">> = iolist_to_binary(join(re:split("AAAaAbc","[^a]+",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("AAAaAbc","[^a]+",[]))), <<"AAAaA">> = iolist_to_binary(join(re:split("AAAaAbc","[^a]+",[caseless, trim]))), <<"AAAaA:">> = iolist_to_binary(join(re:split("AAAaAbc","[^a]+",[caseless, {parts, 2}]))), <<"AAAaA:">> = iolist_to_binary(join(re:split("AAAaAbc","[^a]+",[caseless]))), <<"">> = iolist_to_binary(join(re:split("bbb ccc","[^a]+",[trim]))), <<":">> = iolist_to_binary(join(re:split("bbb ccc","[^a]+",[{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("bbb ccc","[^a]+",[]))), <<"ab">> = iolist_to_binary(join(re:split("abc","[^k]$",[trim]))), <<"ab:">> = iolist_to_binary(join(re:split("abc","[^k]$",[{parts, 2}]))), <<"ab:">> = iolist_to_binary(join(re:split("abc","[^k]$",[]))), <<"*** Failer">> = iolist_to_binary(join(re:split("*** Failers","[^k]$",[trim]))), <<"*** Failer:">> = iolist_to_binary(join(re:split("*** Failers","[^k]$",[{parts, 2}]))), <<"*** Failer:">> = iolist_to_binary(join(re:split("*** Failers","[^k]$",[]))), <<"abk">> = iolist_to_binary(join(re:split("abk","[^k]$",[trim]))), <<"abk">> = iolist_to_binary(join(re:split("abk","[^k]$",[{parts, 2}]))), <<"abk">> = iolist_to_binary(join(re:split("abk","[^k]$",[]))), <<"">> = iolist_to_binary(join(re:split("abc","[^k]{2,3}$",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","[^k]{2,3}$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","[^k]{2,3}$",[]))), <<"k">> = iolist_to_binary(join(re:split("kbc","[^k]{2,3}$",[trim]))), <<"k:">> = iolist_to_binary(join(re:split("kbc","[^k]{2,3}$",[{parts, 2}]))), <<"k:">> = iolist_to_binary(join(re:split("kbc","[^k]{2,3}$",[]))), <<"k">> = iolist_to_binary(join(re:split("kabc","[^k]{2,3}$",[trim]))), <<"k:">> = iolist_to_binary(join(re:split("kabc","[^k]{2,3}$",[{parts, 2}]))), <<"k:">> = iolist_to_binary(join(re:split("kabc","[^k]{2,3}$",[]))), <<"*** Fail">> = iolist_to_binary(join(re:split("*** Failers","[^k]{2,3}$",[trim]))), <<"*** Fail:">> = iolist_to_binary(join(re:split("*** Failers","[^k]{2,3}$",[{parts, 2}]))), <<"*** Fail:">> = iolist_to_binary(join(re:split("*** Failers","[^k]{2,3}$",[]))), <<"abk">> = iolist_to_binary(join(re:split("abk","[^k]{2,3}$",[trim]))), <<"abk">> = iolist_to_binary(join(re:split("abk","[^k]{2,3}$",[{parts, 2}]))), <<"abk">> = iolist_to_binary(join(re:split("abk","[^k]{2,3}$",[]))), <<"akb">> = iolist_to_binary(join(re:split("akb","[^k]{2,3}$",[trim]))), <<"akb">> = iolist_to_binary(join(re:split("akb","[^k]{2,3}$",[{parts, 2}]))), <<"akb">> = iolist_to_binary(join(re:split("akb","[^k]{2,3}$",[]))), <<"akk">> = iolist_to_binary(join(re:split("akk","[^k]{2,3}$",[trim]))), <<"akk">> = iolist_to_binary(join(re:split("akk","[^k]{2,3}$",[{parts, 2}]))), <<"akk">> = iolist_to_binary(join(re:split("akk","[^k]{2,3}$",[]))), <<"12345678.b.c.d">> = iolist_to_binary(join(re:split("12345678.b.c.d","^\\d{8,}\\@.+[^k]$",[trim]))), <<"12345678.b.c.d">> = iolist_to_binary(join(re:split("12345678.b.c.d","^\\d{8,}\\@.+[^k]$",[{parts, 2}]))), <<"12345678.b.c.d">> = iolist_to_binary(join(re:split("12345678.b.c.d","^\\d{8,}\\@.+[^k]$",[]))), <<"123456789.y.z">> = iolist_to_binary(join(re:split("123456789.y.z","^\\d{8,}\\@.+[^k]$",[trim]))), <<"123456789.y.z">> = iolist_to_binary(join(re:split("123456789.y.z","^\\d{8,}\\@.+[^k]$",[{parts, 2}]))), <<"123456789.y.z">> = iolist_to_binary(join(re:split("123456789.y.z","^\\d{8,}\\@.+[^k]$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\d{8,}\\@.+[^k]$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\d{8,}\\@.+[^k]$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\d{8,}\\@.+[^k]$",[]))), <<"12345678.y.uk">> = iolist_to_binary(join(re:split("12345678.y.uk","^\\d{8,}\\@.+[^k]$",[trim]))), <<"12345678.y.uk">> = iolist_to_binary(join(re:split("12345678.y.uk","^\\d{8,}\\@.+[^k]$",[{parts, 2}]))), <<"12345678.y.uk">> = iolist_to_binary(join(re:split("12345678.y.uk","^\\d{8,}\\@.+[^k]$",[]))), <<"1234567.b.c.d">> = iolist_to_binary(join(re:split("1234567.b.c.d","^\\d{8,}\\@.+[^k]$",[trim]))), <<"1234567.b.c.d">> = iolist_to_binary(join(re:split("1234567.b.c.d","^\\d{8,}\\@.+[^k]$",[{parts, 2}]))), <<"1234567.b.c.d">> = iolist_to_binary(join(re:split("1234567.b.c.d","^\\d{8,}\\@.+[^k]$",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaaaaaaa","(a)\\1{8,}",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaaaaaa","(a)\\1{8,}",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaaaaaa","(a)\\1{8,}",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaaaaaaaa","(a)\\1{8,}",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaaaaaaa","(a)\\1{8,}",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaaaaaaa","(a)\\1{8,}",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a)\\1{8,}",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a)\\1{8,}",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a)\\1{8,}",[]))), <<"aaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaa","(a)\\1{8,}",[trim]))), <<"aaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaa","(a)\\1{8,}",[{parts, 2}]))), <<"aaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaa","(a)\\1{8,}",[]))), ok. run7() -> <<"aaaa">> = iolist_to_binary(join(re:split("aaaabcd","[^a]",[trim]))), <<"aaaa:cd">> = iolist_to_binary(join(re:split("aaaabcd","[^a]",[{parts, 2}]))), <<"aaaa:::">> = iolist_to_binary(join(re:split("aaaabcd","[^a]",[]))), <<"aa:a">> = iolist_to_binary(join(re:split("aaAabcd","[^a]",[trim]))), <<"aa:abcd">> = iolist_to_binary(join(re:split("aaAabcd","[^a]",[{parts, 2}]))), <<"aa:a:::">> = iolist_to_binary(join(re:split("aaAabcd","[^a]",[]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaabcd","[^a]",[caseless, trim]))), <<"aaaa:cd">> = iolist_to_binary(join(re:split("aaaabcd","[^a]",[caseless, {parts, 2}]))), <<"aaaa:::">> = iolist_to_binary(join(re:split("aaaabcd","[^a]",[caseless]))), <<"aaAa">> = iolist_to_binary(join(re:split("aaAabcd","[^a]",[caseless, trim]))), <<"aaAa:cd">> = iolist_to_binary(join(re:split("aaAabcd","[^a]",[caseless, {parts, 2}]))), <<"aaAa:::">> = iolist_to_binary(join(re:split("aaAabcd","[^a]",[caseless]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaabcd","[^az]",[trim]))), <<"aaaa:cd">> = iolist_to_binary(join(re:split("aaaabcd","[^az]",[{parts, 2}]))), <<"aaaa:::">> = iolist_to_binary(join(re:split("aaaabcd","[^az]",[]))), <<"aa:a">> = iolist_to_binary(join(re:split("aaAabcd","[^az]",[trim]))), <<"aa:abcd">> = iolist_to_binary(join(re:split("aaAabcd","[^az]",[{parts, 2}]))), <<"aa:a:::">> = iolist_to_binary(join(re:split("aaAabcd","[^az]",[]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaabcd","[^az]",[caseless, trim]))), <<"aaaa:cd">> = iolist_to_binary(join(re:split("aaaabcd","[^az]",[caseless, {parts, 2}]))), <<"aaaa:::">> = iolist_to_binary(join(re:split("aaaabcd","[^az]",[caseless]))), <<"aaAa">> = iolist_to_binary(join(re:split("aaAabcd","[^az]",[caseless, trim]))), <<"aaAa:cd">> = iolist_to_binary(join(re:split("aaAabcd","[^az]",[caseless, {parts, 2}]))), <<"aaAa:::">> = iolist_to_binary(join(re:split("aaAabcd","[^az]",[caseless]))), <<"xxxxxxxxxxx:xxxxxxxxx">> = iolist_to_binary(join(re:split("xxxxxxxxxxxPSTAIREISLLxxxxxxxxx","P[^*]TAIRE[^*]{1,6}?LL",[trim]))), <<"xxxxxxxxxxx:xxxxxxxxx">> = iolist_to_binary(join(re:split("xxxxxxxxxxxPSTAIREISLLxxxxxxxxx","P[^*]TAIRE[^*]{1,6}?LL",[{parts, 2}]))), <<"xxxxxxxxxxx:xxxxxxxxx">> = iolist_to_binary(join(re:split("xxxxxxxxxxxPSTAIREISLLxxxxxxxxx","P[^*]TAIRE[^*]{1,6}?LL",[]))), <<"xxxxxxxxxxx:xxxxxxxxx">> = iolist_to_binary(join(re:split("xxxxxxxxxxxPSTAIREISLLxxxxxxxxx","P[^*]TAIRE[^*]{1,}?LL",[trim]))), <<"xxxxxxxxxxx:xxxxxxxxx">> = iolist_to_binary(join(re:split("xxxxxxxxxxxPSTAIREISLLxxxxxxxxx","P[^*]TAIRE[^*]{1,}?LL",[{parts, 2}]))), <<"xxxxxxxxxxx:xxxxxxxxx">> = iolist_to_binary(join(re:split("xxxxxxxxxxxPSTAIREISLLxxxxxxxxx","P[^*]TAIRE[^*]{1,}?LL",[]))), <<"1:.23">> = iolist_to_binary(join(re:split("1.230003938","(\\.\\d\\d[1-9]?)\\d+",[trim]))), <<"1:.23:">> = iolist_to_binary(join(re:split("1.230003938","(\\.\\d\\d[1-9]?)\\d+",[{parts, 2}]))), <<"1:.23:">> = iolist_to_binary(join(re:split("1.230003938","(\\.\\d\\d[1-9]?)\\d+",[]))), <<"1:.875">> = iolist_to_binary(join(re:split("1.875000282","(\\.\\d\\d[1-9]?)\\d+",[trim]))), <<"1:.875:">> = iolist_to_binary(join(re:split("1.875000282","(\\.\\d\\d[1-9]?)\\d+",[{parts, 2}]))), <<"1:.875:">> = iolist_to_binary(join(re:split("1.875000282","(\\.\\d\\d[1-9]?)\\d+",[]))), <<"1:.23">> = iolist_to_binary(join(re:split("1.235","(\\.\\d\\d[1-9]?)\\d+",[trim]))), <<"1:.23:">> = iolist_to_binary(join(re:split("1.235","(\\.\\d\\d[1-9]?)\\d+",[{parts, 2}]))), <<"1:.23:">> = iolist_to_binary(join(re:split("1.235","(\\.\\d\\d[1-9]?)\\d+",[]))), <<"1:.23::0003938">> = iolist_to_binary(join(re:split("1.230003938","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[trim]))), <<"1:.23::0003938">> = iolist_to_binary(join(re:split("1.230003938","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[{parts, 2}]))), <<"1:.23::0003938">> = iolist_to_binary(join(re:split("1.230003938","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[]))), <<"1:.875:5:000282">> = iolist_to_binary(join(re:split("1.875000282","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[trim]))), <<"1:.875:5:000282">> = iolist_to_binary(join(re:split("1.875000282","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[{parts, 2}]))), <<"1:.875:5:000282">> = iolist_to_binary(join(re:split("1.875000282","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[]))), <<"1.235">> = iolist_to_binary(join(re:split("1.235","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[trim]))), <<"1.235">> = iolist_to_binary(join(re:split("1.235","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[{parts, 2}]))), <<"1.235">> = iolist_to_binary(join(re:split("1.235","(\\.\\d\\d((?=0)|\\d(?=\\d)))",[]))), <<"">> = iolist_to_binary(join(re:split("ab","a(?)b",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab","a(?)b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab","a(?)b",[]))), <<"Food is on the :foo:table">> = iolist_to_binary(join(re:split("Food is on the foo table","\\b(foo)\\s+(\\w+)",[caseless, trim]))), <<"Food is on the :foo:table:">> = iolist_to_binary(join(re:split("Food is on the foo table","\\b(foo)\\s+(\\w+)",[caseless, {parts, 2}]))), <<"Food is on the :foo:table:">> = iolist_to_binary(join(re:split("Food is on the foo table","\\b(foo)\\s+(\\w+)",[caseless]))), <<"The :d is under the bar in the :n.">> = iolist_to_binary(join(re:split("The food is under the bar in the barn.","foo(.*)bar",[trim]))), <<"The :d is under the bar in the :n.">> = iolist_to_binary(join(re:split("The food is under the bar in the barn.","foo(.*)bar",[{parts, 2}]))), <<"The :d is under the bar in the :n.">> = iolist_to_binary(join(re:split("The food is under the bar in the barn.","foo(.*)bar",[]))), <<"The :d is under the : in the barn.">> = iolist_to_binary(join(re:split("The food is under the bar in the barn.","foo(.*?)bar",[trim]))), <<"The :d is under the : in the barn.">> = iolist_to_binary(join(re:split("The food is under the bar in the barn.","foo(.*?)bar",[{parts, 2}]))), <<"The :d is under the : in the barn.">> = iolist_to_binary(join(re:split("The food is under the bar in the barn.","foo(.*?)bar",[]))), <<":I have 2 numbers: 53147">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)(\\d*)",[trim]))), <<":I have 2 numbers: 53147::">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)(\\d*)",[{parts, 2}]))), <<":I have 2 numbers: 53147::">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)(\\d*)",[]))), <<":I have 2 numbers: 5314:7">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)(\\d+)",[trim]))), <<":I have 2 numbers: 5314:7:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)(\\d+)",[{parts, 2}]))), <<":I have 2 numbers: 5314:7:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)(\\d+)",[]))), <<":I::: :::h:::a:::v:::e::: :2:: :::n:::u:::m:::b:::e:::r:::s::::::: :53147">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*?)(\\d*)",[trim]))), <<":I:: have 2 numbers: 53147">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*?)(\\d*)",[{parts, 2}]))), <<":I::: :::h:::a:::v:::e::: :2:: :::n:::u:::m:::b:::e:::r:::s::::::: :53147:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*?)(\\d*)",[]))), <<":I have :2:: numbers: :53147">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*?)(\\d+)",[trim]))), <<":I have :2: numbers: 53147">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*?)(\\d+)",[{parts, 2}]))), <<":I have :2:: numbers: :53147:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*?)(\\d+)",[]))), <<":I have 2 numbers: 5314:7">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)(\\d+)$",[trim]))), <<":I have 2 numbers: 5314:7:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)(\\d+)$",[{parts, 2}]))), <<":I have 2 numbers: 5314:7:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)(\\d+)$",[]))), <<":I have 2 numbers: :53147">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*?)(\\d+)$",[trim]))), <<":I have 2 numbers: :53147:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*?)(\\d+)$",[{parts, 2}]))), <<":I have 2 numbers: :53147:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*?)(\\d+)$",[]))), <<":I have 2 numbers: :53147">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)\\b(\\d+)$",[trim]))), <<":I have 2 numbers: :53147:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)\\b(\\d+)$",[{parts, 2}]))), <<":I have 2 numbers: :53147:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*)\\b(\\d+)$",[]))), ok. run8() -> <<":I have 2 numbers: :53147">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*\\D)(\\d+)$",[trim]))), <<":I have 2 numbers: :53147:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*\\D)(\\d+)$",[{parts, 2}]))), <<":I have 2 numbers: :53147:">> = iolist_to_binary(join(re:split("I have 2 numbers: 53147","(.*\\D)(\\d+)$",[]))), <<":C123">> = iolist_to_binary(join(re:split("ABC123","^\\D*(?!123)",[trim]))), <<":C123">> = iolist_to_binary(join(re:split("ABC123","^\\D*(?!123)",[{parts, 2}]))), <<":C123">> = iolist_to_binary(join(re:split("ABC123","^\\D*(?!123)",[]))), <<":ABC:445">> = iolist_to_binary(join(re:split("ABC445","^(\\D*)(?=\\d)(?!123)",[trim]))), <<":ABC:445">> = iolist_to_binary(join(re:split("ABC445","^(\\D*)(?=\\d)(?!123)",[{parts, 2}]))), <<":ABC:445">> = iolist_to_binary(join(re:split("ABC445","^(\\D*)(?=\\d)(?!123)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\D*)(?=\\d)(?!123)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\D*)(?=\\d)(?!123)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\D*)(?=\\d)(?!123)",[]))), <<"ABC123">> = iolist_to_binary(join(re:split("ABC123","^(\\D*)(?=\\d)(?!123)",[trim]))), <<"ABC123">> = iolist_to_binary(join(re:split("ABC123","^(\\D*)(?=\\d)(?!123)",[{parts, 2}]))), <<"ABC123">> = iolist_to_binary(join(re:split("ABC123","^(\\D*)(?=\\d)(?!123)",[]))), <<":789">> = iolist_to_binary(join(re:split("W46]789","^[W-]46]",[trim]))), <<":789">> = iolist_to_binary(join(re:split("W46]789","^[W-]46]",[{parts, 2}]))), <<":789">> = iolist_to_binary(join(re:split("W46]789","^[W-]46]",[]))), <<":789">> = iolist_to_binary(join(re:split("-46]789","^[W-]46]",[trim]))), <<":789">> = iolist_to_binary(join(re:split("-46]789","^[W-]46]",[{parts, 2}]))), <<":789">> = iolist_to_binary(join(re:split("-46]789","^[W-]46]",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[W-]46]",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[W-]46]",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[W-]46]",[]))), <<"Wall">> = iolist_to_binary(join(re:split("Wall","^[W-]46]",[trim]))), <<"Wall">> = iolist_to_binary(join(re:split("Wall","^[W-]46]",[{parts, 2}]))), <<"Wall">> = iolist_to_binary(join(re:split("Wall","^[W-]46]",[]))), <<"Zebra">> = iolist_to_binary(join(re:split("Zebra","^[W-]46]",[trim]))), <<"Zebra">> = iolist_to_binary(join(re:split("Zebra","^[W-]46]",[{parts, 2}]))), <<"Zebra">> = iolist_to_binary(join(re:split("Zebra","^[W-]46]",[]))), <<"42">> = iolist_to_binary(join(re:split("42","^[W-]46]",[trim]))), <<"42">> = iolist_to_binary(join(re:split("42","^[W-]46]",[{parts, 2}]))), <<"42">> = iolist_to_binary(join(re:split("42","^[W-]46]",[]))), <<"[abcd]">> = iolist_to_binary(join(re:split("[abcd]","^[W-]46]",[trim]))), <<"[abcd]">> = iolist_to_binary(join(re:split("[abcd]","^[W-]46]",[{parts, 2}]))), <<"[abcd]">> = iolist_to_binary(join(re:split("[abcd]","^[W-]46]",[]))), <<"]abcd[">> = iolist_to_binary(join(re:split("]abcd[","^[W-]46]",[trim]))), <<"]abcd[">> = iolist_to_binary(join(re:split("]abcd[","^[W-]46]",[{parts, 2}]))), <<"]abcd[">> = iolist_to_binary(join(re:split("]abcd[","^[W-]46]",[]))), <<":46]789">> = iolist_to_binary(join(re:split("W46]789","^[W-\\]46]",[trim]))), <<":46]789">> = iolist_to_binary(join(re:split("W46]789","^[W-\\]46]",[{parts, 2}]))), <<":46]789">> = iolist_to_binary(join(re:split("W46]789","^[W-\\]46]",[]))), <<":all">> = iolist_to_binary(join(re:split("Wall","^[W-\\]46]",[trim]))), <<":all">> = iolist_to_binary(join(re:split("Wall","^[W-\\]46]",[{parts, 2}]))), <<":all">> = iolist_to_binary(join(re:split("Wall","^[W-\\]46]",[]))), <<":ebra">> = iolist_to_binary(join(re:split("Zebra","^[W-\\]46]",[trim]))), <<":ebra">> = iolist_to_binary(join(re:split("Zebra","^[W-\\]46]",[{parts, 2}]))), <<":ebra">> = iolist_to_binary(join(re:split("Zebra","^[W-\\]46]",[]))), <<":ylophone">> = iolist_to_binary(join(re:split("Xylophone","^[W-\\]46]",[trim]))), <<":ylophone">> = iolist_to_binary(join(re:split("Xylophone","^[W-\\]46]",[{parts, 2}]))), <<":ylophone">> = iolist_to_binary(join(re:split("Xylophone","^[W-\\]46]",[]))), <<":2">> = iolist_to_binary(join(re:split("42","^[W-\\]46]",[trim]))), <<":2">> = iolist_to_binary(join(re:split("42","^[W-\\]46]",[{parts, 2}]))), <<":2">> = iolist_to_binary(join(re:split("42","^[W-\\]46]",[]))), <<":abcd]">> = iolist_to_binary(join(re:split("[abcd]","^[W-\\]46]",[trim]))), <<":abcd]">> = iolist_to_binary(join(re:split("[abcd]","^[W-\\]46]",[{parts, 2}]))), <<":abcd]">> = iolist_to_binary(join(re:split("[abcd]","^[W-\\]46]",[]))), <<":abcd[">> = iolist_to_binary(join(re:split("]abcd[","^[W-\\]46]",[trim]))), <<":abcd[">> = iolist_to_binary(join(re:split("]abcd[","^[W-\\]46]",[{parts, 2}]))), <<":abcd[">> = iolist_to_binary(join(re:split("]abcd[","^[W-\\]46]",[]))), <<":backslash">> = iolist_to_binary(join(re:split("\\backslash","^[W-\\]46]",[trim]))), <<":backslash">> = iolist_to_binary(join(re:split("\\backslash","^[W-\\]46]",[{parts, 2}]))), <<":backslash">> = iolist_to_binary(join(re:split("\\backslash","^[W-\\]46]",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[W-\\]46]",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[W-\\]46]",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[W-\\]46]",[]))), <<"-46]789">> = iolist_to_binary(join(re:split("-46]789","^[W-\\]46]",[trim]))), <<"-46]789">> = iolist_to_binary(join(re:split("-46]789","^[W-\\]46]",[{parts, 2}]))), <<"-46]789">> = iolist_to_binary(join(re:split("-46]789","^[W-\\]46]",[]))), <<"well">> = iolist_to_binary(join(re:split("well","^[W-\\]46]",[trim]))), <<"well">> = iolist_to_binary(join(re:split("well","^[W-\\]46]",[{parts, 2}]))), <<"well">> = iolist_to_binary(join(re:split("well","^[W-\\]46]",[]))), <<"">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark otherword","word (?:[a-zA-Z0-9]+ ){0,10}otherword",[trim]))), <<":">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark otherword","word (?:[a-zA-Z0-9]+ ){0,10}otherword",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark otherword","word (?:[a-zA-Z0-9]+ ){0,10}otherword",[]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark","word (?:[a-zA-Z0-9]+ ){0,10}otherword",[trim]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark","word (?:[a-zA-Z0-9]+ ){0,10}otherword",[{parts, 2}]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark","word (?:[a-zA-Z0-9]+ ){0,10}otherword",[]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope","word (?:[a-zA-Z0-9]+ ){0,300}otherword",[trim]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope","word (?:[a-zA-Z0-9]+ ){0,300}otherword",[{parts, 2}]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope","word (?:[a-zA-Z0-9]+ ){0,300}otherword",[]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,0}",[trim]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,0}",[{parts, 2}]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,0}",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^(a){0,0}",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^(a){0,0}",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^(a){0,0}",[]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^(a){0,0}",[trim]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^(a){0,0}",[{parts, 2}]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^(a){0,0}",[]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,1}",[trim]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,1}",[{parts, 2}]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,1}",[]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,1}",[trim]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,1}",[{parts, 2}]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,1}",[]))), <<":a:ab">> = iolist_to_binary(join(re:split("aab","^(a){0,1}",[trim]))), <<":a:ab">> = iolist_to_binary(join(re:split("aab","^(a){0,1}",[{parts, 2}]))), <<":a:ab">> = iolist_to_binary(join(re:split("aab","^(a){0,1}",[]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,2}",[trim]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,2}",[{parts, 2}]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,2}",[]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,2}",[trim]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,2}",[{parts, 2}]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,2}",[]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){0,2}",[trim]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){0,2}",[{parts, 2}]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){0,2}",[]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,3}",[trim]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,3}",[{parts, 2}]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,3}",[]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,3}",[trim]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,3}",[{parts, 2}]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,3}",[]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){0,3}",[trim]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){0,3}",[{parts, 2}]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){0,3}",[]))), <<":a">> = iolist_to_binary(join(re:split("aaa","^(a){0,3}",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","^(a){0,3}",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","^(a){0,3}",[]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,}",[trim]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,}",[{parts, 2}]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){0,}",[]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,}",[trim]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,}",[{parts, 2}]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){0,}",[]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){0,}",[trim]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){0,}",[{parts, 2}]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){0,}",[]))), <<":a">> = iolist_to_binary(join(re:split("aaa","^(a){0,}",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","^(a){0,}",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","^(a){0,}",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a){0,}",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a){0,}",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a){0,}",[]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,1}",[trim]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,1}",[{parts, 2}]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,1}",[]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,1}",[trim]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,1}",[{parts, 2}]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,1}",[]))), <<":a:ab">> = iolist_to_binary(join(re:split("aab","^(a){1,1}",[trim]))), <<":a:ab">> = iolist_to_binary(join(re:split("aab","^(a){1,1}",[{parts, 2}]))), <<":a:ab">> = iolist_to_binary(join(re:split("aab","^(a){1,1}",[]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,2}",[trim]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,2}",[{parts, 2}]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,2}",[]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,2}",[trim]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,2}",[{parts, 2}]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,2}",[]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){1,2}",[trim]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){1,2}",[{parts, 2}]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){1,2}",[]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,3}",[trim]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,3}",[{parts, 2}]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,3}",[]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,3}",[trim]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,3}",[{parts, 2}]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,3}",[]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){1,3}",[trim]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){1,3}",[{parts, 2}]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){1,3}",[]))), <<":a">> = iolist_to_binary(join(re:split("aaa","^(a){1,3}",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","^(a){1,3}",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","^(a){1,3}",[]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,}",[trim]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,}",[{parts, 2}]))), <<"bcd">> = iolist_to_binary(join(re:split("bcd","^(a){1,}",[]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,}",[trim]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,}",[{parts, 2}]))), <<":a:bc">> = iolist_to_binary(join(re:split("abc","^(a){1,}",[]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){1,}",[trim]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){1,}",[{parts, 2}]))), <<":a:b">> = iolist_to_binary(join(re:split("aab","^(a){1,}",[]))), <<":a">> = iolist_to_binary(join(re:split("aaa","^(a){1,}",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","^(a){1,}",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","^(a){1,}",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a){1,}",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a){1,}",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a){1,}",[]))), <<"borfle : no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[trim]))), <<"borfle : no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[{parts,2}]))), <<"borfle : no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[]))), <<"borfle : no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".{0,}\\.gif",[trim]))), <<"borfle : no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".{0,}\\.gif",[{parts,2}]))), <<"borfle : no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".{0,}\\.gif",[]))), <<"borfle : no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[multiline,trim]))), <<"borfle : no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[multiline,{parts,2}]))), <<"borfle : no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[multiline]))), ok. run9() -> <<": no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[dotall,trim]))), <<": no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[dotall,{parts,2}]))), <<": no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[dotall]))), <<": no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[multiline,dotall,trim]))), <<": no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[multiline,dotall,{parts,2}]))), <<": no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*\\.gif",[multiline,dotall]))), <<"borfle bib.gif ">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[trim]))), <<"borfle bib.gif :">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[{parts,2}]))), <<"borfle bib.gif :">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[]))), <<": : ">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline,trim]))), <<": bib.gif no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline,{parts,2}]))), <<": : :">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline]))), <<"">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[dotall,trim]))), <<":">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[dotall,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[dotall]))), <<"">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline,dotall,trim]))), <<":">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline,dotall,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline,dotall]))), <<"borfle bib.gif ">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[trim]))), <<"borfle bib.gif :">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[{parts,2}]))), <<"borfle bib.gif :">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[]))), <<": : ">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline,trim]))), <<": bib.gif no">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline,{parts,2}]))), <<": : :">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline]))), <<"">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[dotall,trim]))), <<":">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[dotall,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[dotall]))), <<"">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline,dotall,trim]))), <<":">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline,dotall,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("borfle bib.gif no",".*$",[multiline,dotall]))), <<"abcde :1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[trim]))), <<"abcde :1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[{parts,2}]))), <<"abcde :1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[trim]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[{parts, 2}]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(.*X|^B)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(.*X|^B)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(.*X|^B)",[]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[trim]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[{parts,2}]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[]))), <<"abcde :1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[multiline,trim]))), <<"abcde :1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[multiline,{parts,2}]))), <<"abcde :1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[multiline]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[multiline, trim]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[multiline, {parts, 2}]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[multiline]))), <<"abcde :B:ar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[multiline,trim]))), <<"abcde :B:ar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[multiline,{parts,2}]))), <<"abcde :B:ar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[multiline]))), <<":abcde 1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[dotall,trim]))), <<":abcde 1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[dotall,{parts,2}]))), <<":abcde 1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[dotall]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[dotall, trim]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[dotall, {parts, 2}]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[dotall]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(.*X|^B)",[dotall, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(.*X|^B)",[dotall, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(.*X|^B)",[dotall]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[dotall,trim]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[dotall,{parts,2}]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[dotall]))), <<":abcde 1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[multiline,dotall,trim]))), <<":abcde 1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[multiline,dotall,{parts,2}]))), <<":abcde 1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(.*X|^B)",[multiline,dotall]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[multiline, dotall, trim]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[multiline, dotall, {parts, 2}]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(.*X|^B)",[multiline, dotall]))), <<"abcde :B:ar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[multiline,dotall,trim]))), <<"abcde :B:ar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[multiline,dotall,{parts,2}]))), <<"abcde :B:ar">> = iolist_to_binary(join(re:split("abcde Bar","(.*X|^B)",[multiline,dotall]))), <<":abcde 1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(?s)(.*X|^B)",[trim]))), <<":abcde 1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(?s)(.*X|^B)",[{parts,2}]))), <<":abcde 1234X:yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(?s)(.*X|^B)",[]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(?s)(.*X|^B)",[trim]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(?s)(.*X|^B)",[{parts, 2}]))), <<":B:arFoo">> = iolist_to_binary(join(re:split("BarFoo","(?s)(.*X|^B)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?s)(.*X|^B)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?s)(.*X|^B)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?s)(.*X|^B)",[]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(?s)(.*X|^B)",[trim]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(?s)(.*X|^B)",[{parts,2}]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(?s)(.*X|^B)",[]))), <<":yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(?s:.*X|^B)",[trim]))), <<":yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(?s:.*X|^B)",[{parts,2}]))), <<":yz">> = iolist_to_binary(join(re:split("abcde 1234Xyz","(?s:.*X|^B)",[]))), <<":arFoo">> = iolist_to_binary(join(re:split("BarFoo","(?s:.*X|^B)",[trim]))), <<":arFoo">> = iolist_to_binary(join(re:split("BarFoo","(?s:.*X|^B)",[{parts, 2}]))), <<":arFoo">> = iolist_to_binary(join(re:split("BarFoo","(?s:.*X|^B)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?s:.*X|^B)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?s:.*X|^B)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?s:.*X|^B)",[]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(?s:.*X|^B)",[trim]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(?s:.*X|^B)",[{parts,2}]))), <<"abcde Bar">> = iolist_to_binary(join(re:split("abcde Bar","(?s:.*X|^B)",[]))), <<"**** Failers">> = iolist_to_binary(join(re:split("**** Failers","^.*B",[trim]))), <<"**** Failers">> = iolist_to_binary(join(re:split("**** Failers","^.*B",[{parts, 2}]))), <<"**** Failers">> = iolist_to_binary(join(re:split("**** Failers","^.*B",[]))), <<"abc B">> = iolist_to_binary(join(re:split("abc B","^.*B",[trim]))), <<"abc B">> = iolist_to_binary(join(re:split("abc B","^.*B",[{parts,2}]))), <<"abc B">> = iolist_to_binary(join(re:split("abc B","^.*B",[]))), <<"">> = iolist_to_binary(join(re:split("abc B","(?s)^.*B",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc B","(?s)^.*B",[{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("abc B","(?s)^.*B",[]))), <<"abc ">> = iolist_to_binary(join(re:split("abc B","(?m)^.*B",[trim]))), <<"abc :">> = iolist_to_binary(join(re:split("abc B","(?m)^.*B",[{parts,2}]))), <<"abc :">> = iolist_to_binary(join(re:split("abc B","(?m)^.*B",[]))), <<"">> = iolist_to_binary(join(re:split("abc B","(?ms)^.*B",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc B","(?ms)^.*B",[{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("abc B","(?ms)^.*B",[]))), ok. run10() -> <<"abc ">> = iolist_to_binary(join(re:split("abc B","(?ms)^B",[trim]))), <<"abc :">> = iolist_to_binary(join(re:split("abc B","(?ms)^B",[{parts,2}]))), <<"abc :">> = iolist_to_binary(join(re:split("abc B","(?ms)^B",[]))), <<"">> = iolist_to_binary(join(re:split("B","(?s)B$",[trim]))), <<":">> = iolist_to_binary(join(re:split("B","(?s)B$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("B","(?s)B$",[]))), <<"">> = iolist_to_binary(join(re:split("123456654321","^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]",[trim]))), <<":">> = iolist_to_binary(join(re:split("123456654321","^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("123456654321","^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]",[]))), <<"">> = iolist_to_binary(join(re:split("123456654321","^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d",[trim]))), <<":">> = iolist_to_binary(join(re:split("123456654321","^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("123456654321","^\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d",[]))), <<"">> = iolist_to_binary(join(re:split("123456654321","^[\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d]",[trim]))), <<":">> = iolist_to_binary(join(re:split("123456654321","^[\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("123456654321","^[\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d][\\d]",[]))), <<"">> = iolist_to_binary(join(re:split("abcabcabcabc","^[abc]{12}",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcabcabcabc","^[abc]{12}",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcabcabcabc","^[abc]{12}",[]))), <<"">> = iolist_to_binary(join(re:split("abcabcabcabc","^[a-c]{12}",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcabcabcabc","^[a-c]{12}",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcabcabcabc","^[a-c]{12}",[]))), <<":c">> = iolist_to_binary(join(re:split("abcabcabcabc","^(a|b|c){12}",[trim]))), <<":c:">> = iolist_to_binary(join(re:split("abcabcabcabc","^(a|b|c){12}",[{parts, 2}]))), <<":c:">> = iolist_to_binary(join(re:split("abcabcabcabc","^(a|b|c){12}",[]))), <<"">> = iolist_to_binary(join(re:split("n","^[abcdefghijklmnopqrstuvwxy0123456789]",[trim]))), <<":">> = iolist_to_binary(join(re:split("n","^[abcdefghijklmnopqrstuvwxy0123456789]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("n","^[abcdefghijklmnopqrstuvwxy0123456789]",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[abcdefghijklmnopqrstuvwxy0123456789]",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[abcdefghijklmnopqrstuvwxy0123456789]",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[abcdefghijklmnopqrstuvwxy0123456789]",[]))), <<"z">> = iolist_to_binary(join(re:split("z","^[abcdefghijklmnopqrstuvwxy0123456789]",[trim]))), <<"z">> = iolist_to_binary(join(re:split("z","^[abcdefghijklmnopqrstuvwxy0123456789]",[{parts, 2}]))), <<"z">> = iolist_to_binary(join(re:split("z","^[abcdefghijklmnopqrstuvwxy0123456789]",[]))), <<"">> = iolist_to_binary(join(re:split("abcd","abcde{0,0}",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcd","abcde{0,0}",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcd","abcde{0,0}",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abcde{0,0}",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abcde{0,0}",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abcde{0,0}",[]))), <<"abce">> = iolist_to_binary(join(re:split("abce","abcde{0,0}",[trim]))), <<"abce">> = iolist_to_binary(join(re:split("abce","abcde{0,0}",[{parts, 2}]))), <<"abce">> = iolist_to_binary(join(re:split("abce","abcde{0,0}",[]))), <<"">> = iolist_to_binary(join(re:split("abe","ab[cd]{0,0}e",[trim]))), <<":">> = iolist_to_binary(join(re:split("abe","ab[cd]{0,0}e",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abe","ab[cd]{0,0}e",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab[cd]{0,0}e",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab[cd]{0,0}e",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab[cd]{0,0}e",[]))), <<"abcde">> = iolist_to_binary(join(re:split("abcde","ab[cd]{0,0}e",[trim]))), <<"abcde">> = iolist_to_binary(join(re:split("abcde","ab[cd]{0,0}e",[{parts, 2}]))), <<"abcde">> = iolist_to_binary(join(re:split("abcde","ab[cd]{0,0}e",[]))), <<"">> = iolist_to_binary(join(re:split("abd","ab(c){0,0}d",[trim]))), <<"::">> = iolist_to_binary(join(re:split("abd","ab(c){0,0}d",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("abd","ab(c){0,0}d",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab(c){0,0}d",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab(c){0,0}d",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab(c){0,0}d",[]))), <<"abcd">> = iolist_to_binary(join(re:split("abcd","ab(c){0,0}d",[trim]))), <<"abcd">> = iolist_to_binary(join(re:split("abcd","ab(c){0,0}d",[{parts, 2}]))), <<"abcd">> = iolist_to_binary(join(re:split("abcd","ab(c){0,0}d",[]))), <<"">> = iolist_to_binary(join(re:split("a","a(b*)",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a","a(b*)",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a","a(b*)",[]))), <<":b">> = iolist_to_binary(join(re:split("ab","a(b*)",[trim]))), <<":b:">> = iolist_to_binary(join(re:split("ab","a(b*)",[{parts, 2}]))), <<":b:">> = iolist_to_binary(join(re:split("ab","a(b*)",[]))), <<":bbbb">> = iolist_to_binary(join(re:split("abbbb","a(b*)",[trim]))), <<":bbbb:">> = iolist_to_binary(join(re:split("abbbb","a(b*)",[{parts, 2}]))), <<":bbbb:">> = iolist_to_binary(join(re:split("abbbb","a(b*)",[]))), <<"*** F::ilers">> = iolist_to_binary(join(re:split("*** Failers","a(b*)",[trim]))), <<"*** F::ilers">> = iolist_to_binary(join(re:split("*** Failers","a(b*)",[{parts, 2}]))), <<"*** F::ilers">> = iolist_to_binary(join(re:split("*** Failers","a(b*)",[]))), <<"bbbbb">> = iolist_to_binary(join(re:split("bbbbb","a(b*)",[trim]))), <<"bbbbb">> = iolist_to_binary(join(re:split("bbbbb","a(b*)",[{parts, 2}]))), <<"bbbbb">> = iolist_to_binary(join(re:split("bbbbb","a(b*)",[]))), <<"">> = iolist_to_binary(join(re:split("abe","ab\\d{0}e",[trim]))), <<":">> = iolist_to_binary(join(re:split("abe","ab\\d{0}e",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abe","ab\\d{0}e",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab\\d{0}e",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab\\d{0}e",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab\\d{0}e",[]))), <<"ab1e">> = iolist_to_binary(join(re:split("ab1e","ab\\d{0}e",[trim]))), <<"ab1e">> = iolist_to_binary(join(re:split("ab1e","ab\\d{0}e",[{parts, 2}]))), <<"ab1e">> = iolist_to_binary(join(re:split("ab1e","ab\\d{0}e",[]))), <<"the :quick: brown fox">> = iolist_to_binary(join(re:split("the \"quick\" brown fox","\"([^\\\\\"]+|\\\\.)*\"",[trim]))), <<"the :quick: brown fox">> = iolist_to_binary(join(re:split("the \"quick\" brown fox","\"([^\\\\\"]+|\\\\.)*\"",[{parts, 2}]))), <<"the :quick: brown fox">> = iolist_to_binary(join(re:split("the \"quick\" brown fox","\"([^\\\\\"]+|\\\\.)*\"",[]))), <<": brown fox">> = iolist_to_binary(join(re:split("\"the \\\"quick\\\" brown fox\"","\"([^\\\\\"]+|\\\\.)*\"",[trim]))), <<": brown fox:">> = iolist_to_binary(join(re:split("\"the \\\"quick\\\" brown fox\"","\"([^\\\\\"]+|\\\\.)*\"",[{parts, 2}]))), <<": brown fox:">> = iolist_to_binary(join(re:split("\"the \\\"quick\\\" brown fox\"","\"([^\\\\\"]+|\\\\.)*\"",[]))), <<"a:b:c">> = iolist_to_binary(join(re:split("abc","",[trim]))), <<"a:bc">> = iolist_to_binary(join(re:split("abc","",[{parts, 2}]))), <<"a:b:c:">> = iolist_to_binary(join(re:split("abc","",[]))), <<"">> = iolist_to_binary(join(re:split("acb","a[^a]b",[trim]))), <<":">> = iolist_to_binary(join(re:split("acb","a[^a]b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("acb","a[^a]b",[]))), <<"">> = iolist_to_binary(join(re:split("a b","a[^a]b",[trim]))), <<":">> = iolist_to_binary(join(re:split("a b","a[^a]b",[{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("a b","a[^a]b",[]))), <<"">> = iolist_to_binary(join(re:split("acb","a.b",[trim]))), <<":">> = iolist_to_binary(join(re:split("acb","a.b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("acb","a.b",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a.b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a.b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a.b",[]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a.b",[trim]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a.b",[{parts,2}]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a.b",[]))), <<"">> = iolist_to_binary(join(re:split("acb","a[^a]b",[dotall, trim]))), <<":">> = iolist_to_binary(join(re:split("acb","a[^a]b",[dotall, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("acb","a[^a]b",[dotall]))), <<"">> = iolist_to_binary(join(re:split("a b","a[^a]b",[dotall,trim]))), <<":">> = iolist_to_binary(join(re:split("a b","a[^a]b",[dotall,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("a b","a[^a]b",[dotall]))), ok. run11() -> <<"">> = iolist_to_binary(join(re:split("acb","a.b",[dotall, trim]))), <<":">> = iolist_to_binary(join(re:split("acb","a.b",[dotall, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("acb","a.b",[dotall]))), <<"">> = iolist_to_binary(join(re:split("a b","a.b",[dotall,trim]))), <<":">> = iolist_to_binary(join(re:split("a b","a.b",[dotall,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("a b","a.b",[dotall]))), <<":a">> = iolist_to_binary(join(re:split("bac","^(b+?|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bac","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bac","^(b+?|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbac","^(b+?|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbac","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbac","^(b+?|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbbac","^(b+?|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbbac","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbbac","^(b+?|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbbbac","^(b+?|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbac","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbac","^(b+?|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbbbbac","^(b+?|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbbac","^(b+?|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbbac","^(b+?|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bac","^(b+|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bac","^(b+|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bac","^(b+|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbac","^(b+|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbac","^(b+|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbac","^(b+|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbbac","^(b+|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbbac","^(b+|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbbac","^(b+|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbbbac","^(b+|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbac","^(b+|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbac","^(b+|a){1,2}?c",[]))), <<":a">> = iolist_to_binary(join(re:split("bbbbbac","^(b+|a){1,2}?c",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbbac","^(b+|a){1,2}?c",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("bbbbbac","^(b+|a){1,2}?c",[]))), <<"x b">> = iolist_to_binary(join(re:split("x b","(?!\\A)x",[multiline,trim]))), <<"x b">> = iolist_to_binary(join(re:split("x b","(?!\\A)x",[multiline,{parts,2}]))), <<"x b">> = iolist_to_binary(join(re:split("x b","(?!\\A)x",[multiline]))), <<"a">> = iolist_to_binary(join(re:split("ax","(?!\\A)x",[multiline, trim]))), <<"a:">> = iolist_to_binary(join(re:split("ax","(?!\\A)x",[multiline, {parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("ax","(?!\\A)x",[multiline]))), <<"{ab}">> = iolist_to_binary(join(re:split("{ab}","\\x0{ab}",[trim]))), <<"{ab}">> = iolist_to_binary(join(re:split("{ab}","\\x0{ab}",[{parts, 2}]))), <<"{ab}">> = iolist_to_binary(join(re:split("{ab}","\\x0{ab}",[]))), <<"">> = iolist_to_binary(join(re:split("CD","(A|B)*?CD",[trim]))), <<"::">> = iolist_to_binary(join(re:split("CD","(A|B)*?CD",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("CD","(A|B)*?CD",[]))), <<"">> = iolist_to_binary(join(re:split("CD","(A|B)*CD",[trim]))), <<"::">> = iolist_to_binary(join(re:split("CD","(A|B)*CD",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("CD","(A|B)*CD",[]))), <<":AB:AB">> = iolist_to_binary(join(re:split("ABABAB","(AB)*?\\1",[trim]))), <<":AB:AB">> = iolist_to_binary(join(re:split("ABABAB","(AB)*?\\1",[{parts, 2}]))), <<":AB:AB">> = iolist_to_binary(join(re:split("ABABAB","(AB)*?\\1",[]))), <<":AB">> = iolist_to_binary(join(re:split("ABABAB","(AB)*\\1",[trim]))), <<":AB:">> = iolist_to_binary(join(re:split("ABABAB","(AB)*\\1",[{parts, 2}]))), <<":AB:">> = iolist_to_binary(join(re:split("ABABAB","(AB)*\\1",[]))), <<"">> = iolist_to_binary(join(re:split("foo","(?> = iolist_to_binary(join(re:split("foo","(?> = iolist_to_binary(join(re:split("foo","(?> = iolist_to_binary(join(re:split("catfood","(?> = iolist_to_binary(join(re:split("catfood","(?> = iolist_to_binary(join(re:split("catfood","(?> = iolist_to_binary(join(re:split("arfootle","(?> = iolist_to_binary(join(re:split("arfootle","(?> = iolist_to_binary(join(re:split("arfootle","(?> = iolist_to_binary(join(re:split("rfoosh","(?> = iolist_to_binary(join(re:split("rfoosh","(?> = iolist_to_binary(join(re:split("rfoosh","(?> = iolist_to_binary(join(re:split("*** Failers","(?> = iolist_to_binary(join(re:split("*** Failers","(?> = iolist_to_binary(join(re:split("*** Failers","(?> = iolist_to_binary(join(re:split("barfoo","(?> = iolist_to_binary(join(re:split("barfoo","(?> = iolist_to_binary(join(re:split("barfoo","(?> = iolist_to_binary(join(re:split("towbarfoo","(?> = iolist_to_binary(join(re:split("towbarfoo","(?> = iolist_to_binary(join(re:split("towbarfoo","(?> = iolist_to_binary(join(re:split("catfood","\\w{3}(?> = iolist_to_binary(join(re:split("catfood","\\w{3}(?> = iolist_to_binary(join(re:split("catfood","\\w{3}(?> = iolist_to_binary(join(re:split("*** Failers","\\w{3}(?> = iolist_to_binary(join(re:split("*** Failers","\\w{3}(?> = iolist_to_binary(join(re:split("*** Failers","\\w{3}(?> = iolist_to_binary(join(re:split("foo","\\w{3}(?> = iolist_to_binary(join(re:split("foo","\\w{3}(?> = iolist_to_binary(join(re:split("foo","\\w{3}(?> = iolist_to_binary(join(re:split("barfoo","\\w{3}(?> = iolist_to_binary(join(re:split("barfoo","\\w{3}(?> = iolist_to_binary(join(re:split("barfoo","\\w{3}(?> = iolist_to_binary(join(re:split("towbarfoo","\\w{3}(?> = iolist_to_binary(join(re:split("towbarfoo","\\w{3}(?> = iolist_to_binary(join(re:split("towbarfoo","\\w{3}(?> = iolist_to_binary(join(re:split("fooabar","(?<=(foo)a)bar",[trim]))), <<"fooa:foo:">> = iolist_to_binary(join(re:split("fooabar","(?<=(foo)a)bar",[{parts, 2}]))), <<"fooa:foo:">> = iolist_to_binary(join(re:split("fooabar","(?<=(foo)a)bar",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=(foo)a)bar",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=(foo)a)bar",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=(foo)a)bar",[]))), <<"bar">> = iolist_to_binary(join(re:split("bar","(?<=(foo)a)bar",[trim]))), <<"bar">> = iolist_to_binary(join(re:split("bar","(?<=(foo)a)bar",[{parts, 2}]))), <<"bar">> = iolist_to_binary(join(re:split("bar","(?<=(foo)a)bar",[]))), <<"foobbar">> = iolist_to_binary(join(re:split("foobbar","(?<=(foo)a)bar",[trim]))), <<"foobbar">> = iolist_to_binary(join(re:split("foobbar","(?<=(foo)a)bar",[{parts, 2}]))), <<"foobbar">> = iolist_to_binary(join(re:split("foobbar","(?<=(foo)a)bar",[]))), <<"">> = iolist_to_binary(join(re:split("abc","\\Aabc\\z",[multiline, trim]))), <<":">> = iolist_to_binary(join(re:split("abc","\\Aabc\\z",[multiline, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","\\Aabc\\z",[multiline]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\Aabc\\z",[multiline, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\Aabc\\z",[multiline, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\Aabc\\z",[multiline]))), <<"">> = iolist_to_binary(join(re:split("abc","\\Aabc\\z",[multiline, trim]))), <<":">> = iolist_to_binary(join(re:split("abc","\\Aabc\\z",[multiline, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","\\Aabc\\z",[multiline]))), <<"qqq abc">> = iolist_to_binary(join(re:split("qqq abc","\\Aabc\\z",[multiline,trim]))), <<"qqq abc">> = iolist_to_binary(join(re:split("qqq abc","\\Aabc\\z",[multiline,{parts,2}]))), <<"qqq abc">> = iolist_to_binary(join(re:split("qqq abc","\\Aabc\\z",[multiline]))), <<"abc zzz">> = iolist_to_binary(join(re:split("abc zzz","\\Aabc\\z",[multiline,trim]))), <<"abc zzz">> = iolist_to_binary(join(re:split("abc zzz","\\Aabc\\z",[multiline,{parts,2}]))), <<"abc zzz">> = iolist_to_binary(join(re:split("abc zzz","\\Aabc\\z",[multiline]))), <<"qqq abc zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","\\Aabc\\z",[multiline,trim]))), <<"qqq abc zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","\\Aabc\\z",[multiline,{parts,2}]))), <<"qqq abc zzz">> = iolist_to_binary(join(re:split("qqq abc zzz","\\Aabc\\z",[multiline]))), <<"1:.23">> = iolist_to_binary(join(re:split("1.230003938","(?>(\\.\\d\\d[1-9]?))\\d+",[trim]))), <<"1:.23:">> = iolist_to_binary(join(re:split("1.230003938","(?>(\\.\\d\\d[1-9]?))\\d+",[{parts, 2}]))), <<"1:.23:">> = iolist_to_binary(join(re:split("1.230003938","(?>(\\.\\d\\d[1-9]?))\\d+",[]))), <<"1:.875">> = iolist_to_binary(join(re:split("1.875000282","(?>(\\.\\d\\d[1-9]?))\\d+",[trim]))), <<"1:.875:">> = iolist_to_binary(join(re:split("1.875000282","(?>(\\.\\d\\d[1-9]?))\\d+",[{parts, 2}]))), <<"1:.875:">> = iolist_to_binary(join(re:split("1.875000282","(?>(\\.\\d\\d[1-9]?))\\d+",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?>(\\.\\d\\d[1-9]?))\\d+",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?>(\\.\\d\\d[1-9]?))\\d+",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?>(\\.\\d\\d[1-9]?))\\d+",[]))), <<"1.235">> = iolist_to_binary(join(re:split("1.235","(?>(\\.\\d\\d[1-9]?))\\d+",[trim]))), <<"1.235">> = iolist_to_binary(join(re:split("1.235","(?>(\\.\\d\\d[1-9]?))\\d+",[{parts, 2}]))), <<"1.235">> = iolist_to_binary(join(re:split("1.235","(?>(\\.\\d\\d[1-9]?))\\d+",[]))), <<":party">> = iolist_to_binary(join(re:split("now is the time for all good men to come to the aid of the party","^((?>\\w+)|(?>\\s+))*$",[trim]))), <<":party:">> = iolist_to_binary(join(re:split("now is the time for all good men to come to the aid of the party","^((?>\\w+)|(?>\\s+))*$",[{parts, 2}]))), <<":party:">> = iolist_to_binary(join(re:split("now is the time for all good men to come to the aid of the party","^((?>\\w+)|(?>\\s+))*$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^((?>\\w+)|(?>\\s+))*$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^((?>\\w+)|(?>\\s+))*$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^((?>\\w+)|(?>\\s+))*$",[]))), <<"this is not a line with only words and spaces!">> = iolist_to_binary(join(re:split("this is not a line with only words and spaces!","^((?>\\w+)|(?>\\s+))*$",[trim]))), <<"this is not a line with only words and spaces!">> = iolist_to_binary(join(re:split("this is not a line with only words and spaces!","^((?>\\w+)|(?>\\s+))*$",[{parts, 2}]))), <<"this is not a line with only words and spaces!">> = iolist_to_binary(join(re:split("this is not a line with only words and spaces!","^((?>\\w+)|(?>\\s+))*$",[]))), <<":12345:a">> = iolist_to_binary(join(re:split("12345a","(\\d+)(\\w)",[trim]))), <<":12345:a:">> = iolist_to_binary(join(re:split("12345a","(\\d+)(\\w)",[{parts, 2}]))), <<":12345:a:">> = iolist_to_binary(join(re:split("12345a","(\\d+)(\\w)",[]))), <<":1234:5:+">> = iolist_to_binary(join(re:split("12345+","(\\d+)(\\w)",[trim]))), <<":1234:5:+">> = iolist_to_binary(join(re:split("12345+","(\\d+)(\\w)",[{parts, 2}]))), <<":1234:5:+">> = iolist_to_binary(join(re:split("12345+","(\\d+)(\\w)",[]))), <<":12345:a">> = iolist_to_binary(join(re:split("12345a","((?>\\d+))(\\w)",[trim]))), <<":12345:a:">> = iolist_to_binary(join(re:split("12345a","((?>\\d+))(\\w)",[{parts, 2}]))), <<":12345:a:">> = iolist_to_binary(join(re:split("12345a","((?>\\d+))(\\w)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?>\\d+))(\\w)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?>\\d+))(\\w)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?>\\d+))(\\w)",[]))), <<"12345+">> = iolist_to_binary(join(re:split("12345+","((?>\\d+))(\\w)",[trim]))), <<"12345+">> = iolist_to_binary(join(re:split("12345+","((?>\\d+))(\\w)",[{parts, 2}]))), <<"12345+">> = iolist_to_binary(join(re:split("12345+","((?>\\d+))(\\w)",[]))), <<"">> = iolist_to_binary(join(re:split("aaab","(?>a+)b",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaab","(?>a+)b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaab","(?>a+)b",[]))), ok. run12() -> <<":aaab">> = iolist_to_binary(join(re:split("aaab","((?>a+)b)",[trim]))), <<":aaab:">> = iolist_to_binary(join(re:split("aaab","((?>a+)b)",[{parts, 2}]))), <<":aaab:">> = iolist_to_binary(join(re:split("aaab","((?>a+)b)",[]))), <<":aaa">> = iolist_to_binary(join(re:split("aaab","(?>(a+))b",[trim]))), <<":aaa:">> = iolist_to_binary(join(re:split("aaab","(?>(a+))b",[{parts, 2}]))), <<":aaa:">> = iolist_to_binary(join(re:split("aaab","(?>(a+))b",[]))), <<"aaa:ccc">> = iolist_to_binary(join(re:split("aaabbbccc","(?>b)+",[trim]))), <<"aaa:ccc">> = iolist_to_binary(join(re:split("aaabbbccc","(?>b)+",[{parts, 2}]))), <<"aaa:ccc">> = iolist_to_binary(join(re:split("aaabbbccc","(?>b)+",[]))), <<"::::d">> = iolist_to_binary(join(re:split("aaabbbbccccd","(?>a+|b+|c+)*c",[trim]))), <<":cccd">> = iolist_to_binary(join(re:split("aaabbbbccccd","(?>a+|b+|c+)*c",[{parts, 2}]))), <<"::::d">> = iolist_to_binary(join(re:split("aaabbbbccccd","(?>a+|b+|c+)*c",[]))), <<"((:x">> = iolist_to_binary(join(re:split("((abc(ade)ufh()()x","((?>[^()]+)|\\([^()]*\\))+",[trim]))), <<"((:x:">> = iolist_to_binary(join(re:split("((abc(ade)ufh()()x","((?>[^()]+)|\\([^()]*\\))+",[{parts, 2}]))), <<"((:x:">> = iolist_to_binary(join(re:split("((abc(ade)ufh()()x","((?>[^()]+)|\\([^()]*\\))+",[]))), <<":abc">> = iolist_to_binary(join(re:split("(abc)","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("(abc)","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("(abc)","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[]))), <<":xyz">> = iolist_to_binary(join(re:split("(abc(def)xyz)","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[trim]))), <<":xyz:">> = iolist_to_binary(join(re:split("(abc(def)xyz)","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[{parts, 2}]))), <<":xyz:">> = iolist_to_binary(join(re:split("(abc(def)xyz)","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[]))), <<"((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[trim]))), <<"((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[{parts, 2}]))), <<"((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","\\(((?>[^()]+)|\\([^()]+\\))+\\)",[]))), <<"">> = iolist_to_binary(join(re:split("ab","a(?-i)b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ab","a(?-i)b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab","a(?-i)b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("Ab","a(?-i)b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("Ab","a(?-i)b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("Ab","a(?-i)b",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?-i)b",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?-i)b",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?-i)b",[caseless]))), <<"aB">> = iolist_to_binary(join(re:split("aB","a(?-i)b",[caseless, trim]))), <<"aB">> = iolist_to_binary(join(re:split("aB","a(?-i)b",[caseless, {parts, 2}]))), <<"aB">> = iolist_to_binary(join(re:split("aB","a(?-i)b",[caseless]))), <<"AB">> = iolist_to_binary(join(re:split("AB","a(?-i)b",[caseless, trim]))), <<"AB">> = iolist_to_binary(join(re:split("AB","a(?-i)b",[caseless, {parts, 2}]))), <<"AB">> = iolist_to_binary(join(re:split("AB","a(?-i)b",[caseless]))), <<":a bc">> = iolist_to_binary(join(re:split("a bcd e","(a (?x)b c)d e",[trim]))), <<":a bc:">> = iolist_to_binary(join(re:split("a bcd e","(a (?x)b c)d e",[{parts, 2}]))), <<":a bc:">> = iolist_to_binary(join(re:split("a bcd e","(a (?x)b c)d e",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a (?x)b c)d e",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a (?x)b c)d e",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a (?x)b c)d e",[]))), <<"a b cd e">> = iolist_to_binary(join(re:split("a b cd e","(a (?x)b c)d e",[trim]))), <<"a b cd e">> = iolist_to_binary(join(re:split("a b cd e","(a (?x)b c)d e",[{parts, 2}]))), <<"a b cd e">> = iolist_to_binary(join(re:split("a b cd e","(a (?x)b c)d e",[]))), <<"abcd e">> = iolist_to_binary(join(re:split("abcd e","(a (?x)b c)d e",[trim]))), <<"abcd e">> = iolist_to_binary(join(re:split("abcd e","(a (?x)b c)d e",[{parts, 2}]))), <<"abcd e">> = iolist_to_binary(join(re:split("abcd e","(a (?x)b c)d e",[]))), <<"a bcde">> = iolist_to_binary(join(re:split("a bcde","(a (?x)b c)d e",[trim]))), <<"a bcde">> = iolist_to_binary(join(re:split("a bcde","(a (?x)b c)d e",[{parts, 2}]))), <<"a bcde">> = iolist_to_binary(join(re:split("a bcde","(a (?x)b c)d e",[]))), <<":a bcde f">> = iolist_to_binary(join(re:split("a bcde f","(a b(?x)c d (?-x)e f)",[trim]))), <<":a bcde f:">> = iolist_to_binary(join(re:split("a bcde f","(a b(?x)c d (?-x)e f)",[{parts, 2}]))), <<":a bcde f:">> = iolist_to_binary(join(re:split("a bcde f","(a b(?x)c d (?-x)e f)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a b(?x)c d (?-x)e f)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a b(?x)c d (?-x)e f)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a b(?x)c d (?-x)e f)",[]))), <<"abcdef">> = iolist_to_binary(join(re:split("abcdef","(a b(?x)c d (?-x)e f)",[trim]))), <<"abcdef">> = iolist_to_binary(join(re:split("abcdef","(a b(?x)c d (?-x)e f)",[{parts, 2}]))), <<"abcdef">> = iolist_to_binary(join(re:split("abcdef","(a b(?x)c d (?-x)e f)",[]))), <<":ab">> = iolist_to_binary(join(re:split("abc","(a(?i)b)c",[trim]))), <<":ab:">> = iolist_to_binary(join(re:split("abc","(a(?i)b)c",[{parts, 2}]))), <<":ab:">> = iolist_to_binary(join(re:split("abc","(a(?i)b)c",[]))), <<":aB">> = iolist_to_binary(join(re:split("aBc","(a(?i)b)c",[trim]))), <<":aB:">> = iolist_to_binary(join(re:split("aBc","(a(?i)b)c",[{parts, 2}]))), <<":aB:">> = iolist_to_binary(join(re:split("aBc","(a(?i)b)c",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a(?i)b)c",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a(?i)b)c",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a(?i)b)c",[]))), <<"abC">> = iolist_to_binary(join(re:split("abC","(a(?i)b)c",[trim]))), <<"abC">> = iolist_to_binary(join(re:split("abC","(a(?i)b)c",[{parts, 2}]))), <<"abC">> = iolist_to_binary(join(re:split("abC","(a(?i)b)c",[]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","(a(?i)b)c",[trim]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","(a(?i)b)c",[{parts, 2}]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","(a(?i)b)c",[]))), <<"Abc">> = iolist_to_binary(join(re:split("Abc","(a(?i)b)c",[trim]))), <<"Abc">> = iolist_to_binary(join(re:split("Abc","(a(?i)b)c",[{parts, 2}]))), <<"Abc">> = iolist_to_binary(join(re:split("Abc","(a(?i)b)c",[]))), <<"ABc">> = iolist_to_binary(join(re:split("ABc","(a(?i)b)c",[trim]))), <<"ABc">> = iolist_to_binary(join(re:split("ABc","(a(?i)b)c",[{parts, 2}]))), <<"ABc">> = iolist_to_binary(join(re:split("ABc","(a(?i)b)c",[]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","(a(?i)b)c",[trim]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","(a(?i)b)c",[{parts, 2}]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","(a(?i)b)c",[]))), <<"AbC">> = iolist_to_binary(join(re:split("AbC","(a(?i)b)c",[trim]))), <<"AbC">> = iolist_to_binary(join(re:split("AbC","(a(?i)b)c",[{parts, 2}]))), <<"AbC">> = iolist_to_binary(join(re:split("AbC","(a(?i)b)c",[]))), <<"">> = iolist_to_binary(join(re:split("abc","a(?i:b)c",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","a(?i:b)c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","a(?i:b)c",[]))), <<"">> = iolist_to_binary(join(re:split("aBc","a(?i:b)c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aBc","a(?i:b)c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aBc","a(?i:b)c",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?i:b)c",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?i:b)c",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?i:b)c",[]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","a(?i:b)c",[trim]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","a(?i:b)c",[{parts, 2}]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","a(?i:b)c",[]))), <<"abC">> = iolist_to_binary(join(re:split("abC","a(?i:b)c",[trim]))), <<"abC">> = iolist_to_binary(join(re:split("abC","a(?i:b)c",[{parts, 2}]))), <<"abC">> = iolist_to_binary(join(re:split("abC","a(?i:b)c",[]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","a(?i:b)c",[trim]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","a(?i:b)c",[{parts, 2}]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","a(?i:b)c",[]))), <<"">> = iolist_to_binary(join(re:split("aBc","a(?i:b)*c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aBc","a(?i:b)*c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aBc","a(?i:b)*c",[]))), <<"">> = iolist_to_binary(join(re:split("aBBc","a(?i:b)*c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aBBc","a(?i:b)*c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aBBc","a(?i:b)*c",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?i:b)*c",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?i:b)*c",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?i:b)*c",[]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","a(?i:b)*c",[trim]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","a(?i:b)*c",[{parts, 2}]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","a(?i:b)*c",[]))), <<"aBBC">> = iolist_to_binary(join(re:split("aBBC","a(?i:b)*c",[trim]))), <<"aBBC">> = iolist_to_binary(join(re:split("aBBC","a(?i:b)*c",[{parts, 2}]))), <<"aBBC">> = iolist_to_binary(join(re:split("aBBC","a(?i:b)*c",[]))), <<"">> = iolist_to_binary(join(re:split("abcd","a(?=b(?i)c)\\w\\wd",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcd","a(?=b(?i)c)\\w\\wd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcd","a(?=b(?i)c)\\w\\wd",[]))), <<"">> = iolist_to_binary(join(re:split("abCd","a(?=b(?i)c)\\w\\wd",[trim]))), <<":">> = iolist_to_binary(join(re:split("abCd","a(?=b(?i)c)\\w\\wd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abCd","a(?=b(?i)c)\\w\\wd",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?=b(?i)c)\\w\\wd",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?=b(?i)c)\\w\\wd",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?=b(?i)c)\\w\\wd",[]))), <<"aBCd">> = iolist_to_binary(join(re:split("aBCd","a(?=b(?i)c)\\w\\wd",[trim]))), <<"aBCd">> = iolist_to_binary(join(re:split("aBCd","a(?=b(?i)c)\\w\\wd",[{parts, 2}]))), <<"aBCd">> = iolist_to_binary(join(re:split("aBCd","a(?=b(?i)c)\\w\\wd",[]))), <<"abcD">> = iolist_to_binary(join(re:split("abcD","a(?=b(?i)c)\\w\\wd",[trim]))), <<"abcD">> = iolist_to_binary(join(re:split("abcD","a(?=b(?i)c)\\w\\wd",[{parts, 2}]))), <<"abcD">> = iolist_to_binary(join(re:split("abcD","a(?=b(?i)c)\\w\\wd",[]))), <<"">> = iolist_to_binary(join(re:split("more than million","(?s-i:more.*than).*million",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("more than million","(?s-i:more.*than).*million",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("more than million","(?s-i:more.*than).*million",[caseless]))), <<"">> = iolist_to_binary(join(re:split("more than MILLION","(?s-i:more.*than).*million",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("more than MILLION","(?s-i:more.*than).*million",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("more than MILLION","(?s-i:more.*than).*million",[caseless]))), <<"">> = iolist_to_binary(join(re:split("more than Million","(?s-i:more.*than).*million",[caseless,trim]))), <<":">> = iolist_to_binary(join(re:split("more than Million","(?s-i:more.*than).*million",[caseless,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("more than Million","(?s-i:more.*than).*million",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?s-i:more.*than).*million",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?s-i:more.*than).*million",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?s-i:more.*than).*million",[caseless]))), <<"MORE THAN MILLION">> = iolist_to_binary(join(re:split("MORE THAN MILLION","(?s-i:more.*than).*million",[caseless, trim]))), <<"MORE THAN MILLION">> = iolist_to_binary(join(re:split("MORE THAN MILLION","(?s-i:more.*than).*million",[caseless, {parts, 2}]))), <<"MORE THAN MILLION">> = iolist_to_binary(join(re:split("MORE THAN MILLION","(?s-i:more.*than).*million",[caseless]))), <<"more than million">> = iolist_to_binary(join(re:split("more than million","(?s-i:more.*than).*million",[caseless,trim]))), <<"more than million">> = iolist_to_binary(join(re:split("more than million","(?s-i:more.*than).*million",[caseless,{parts,2}]))), <<"more than million">> = iolist_to_binary(join(re:split("more than million","(?s-i:more.*than).*million",[caseless]))), <<"">> = iolist_to_binary(join(re:split("more than million","(?:(?s-i)more.*than).*million",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("more than million","(?:(?s-i)more.*than).*million",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("more than million","(?:(?s-i)more.*than).*million",[caseless]))), <<"">> = iolist_to_binary(join(re:split("more than MILLION","(?:(?s-i)more.*than).*million",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("more than MILLION","(?:(?s-i)more.*than).*million",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("more than MILLION","(?:(?s-i)more.*than).*million",[caseless]))), <<"">> = iolist_to_binary(join(re:split("more than Million","(?:(?s-i)more.*than).*million",[caseless,trim]))), <<":">> = iolist_to_binary(join(re:split("more than Million","(?:(?s-i)more.*than).*million",[caseless,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("more than Million","(?:(?s-i)more.*than).*million",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?s-i)more.*than).*million",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?s-i)more.*than).*million",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?s-i)more.*than).*million",[caseless]))), <<"MORE THAN MILLION">> = iolist_to_binary(join(re:split("MORE THAN MILLION","(?:(?s-i)more.*than).*million",[caseless, trim]))), <<"MORE THAN MILLION">> = iolist_to_binary(join(re:split("MORE THAN MILLION","(?:(?s-i)more.*than).*million",[caseless, {parts, 2}]))), <<"MORE THAN MILLION">> = iolist_to_binary(join(re:split("MORE THAN MILLION","(?:(?s-i)more.*than).*million",[caseless]))), <<"more than million">> = iolist_to_binary(join(re:split("more than million","(?:(?s-i)more.*than).*million",[caseless,trim]))), <<"more than million">> = iolist_to_binary(join(re:split("more than million","(?:(?s-i)more.*than).*million",[caseless,{parts,2}]))), <<"more than million">> = iolist_to_binary(join(re:split("more than million","(?:(?s-i)more.*than).*million",[caseless]))), <<"">> = iolist_to_binary(join(re:split("abc","(?>a(?i)b+)+c",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","(?>a(?i)b+)+c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","(?>a(?i)b+)+c",[]))), <<"">> = iolist_to_binary(join(re:split("aBbc","(?>a(?i)b+)+c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aBbc","(?>a(?i)b+)+c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aBbc","(?>a(?i)b+)+c",[]))), <<"">> = iolist_to_binary(join(re:split("aBBc","(?>a(?i)b+)+c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aBBc","(?>a(?i)b+)+c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aBBc","(?>a(?i)b+)+c",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?>a(?i)b+)+c",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?>a(?i)b+)+c",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?>a(?i)b+)+c",[]))), <<"Abc">> = iolist_to_binary(join(re:split("Abc","(?>a(?i)b+)+c",[trim]))), <<"Abc">> = iolist_to_binary(join(re:split("Abc","(?>a(?i)b+)+c",[{parts, 2}]))), <<"Abc">> = iolist_to_binary(join(re:split("Abc","(?>a(?i)b+)+c",[]))), <<"abAb">> = iolist_to_binary(join(re:split("abAb","(?>a(?i)b+)+c",[trim]))), <<"abAb">> = iolist_to_binary(join(re:split("abAb","(?>a(?i)b+)+c",[{parts, 2}]))), <<"abAb">> = iolist_to_binary(join(re:split("abAb","(?>a(?i)b+)+c",[]))), <<"abbC">> = iolist_to_binary(join(re:split("abbC","(?>a(?i)b+)+c",[trim]))), <<"abbC">> = iolist_to_binary(join(re:split("abbC","(?>a(?i)b+)+c",[{parts, 2}]))), <<"abbC">> = iolist_to_binary(join(re:split("abbC","(?>a(?i)b+)+c",[]))), <<"">> = iolist_to_binary(join(re:split("abc","(?=a(?i)b)\\w\\wc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","(?=a(?i)b)\\w\\wc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","(?=a(?i)b)\\w\\wc",[]))), <<"">> = iolist_to_binary(join(re:split("aBc","(?=a(?i)b)\\w\\wc",[trim]))), <<":">> = iolist_to_binary(join(re:split("aBc","(?=a(?i)b)\\w\\wc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aBc","(?=a(?i)b)\\w\\wc",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?=a(?i)b)\\w\\wc",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?=a(?i)b)\\w\\wc",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?=a(?i)b)\\w\\wc",[]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?=a(?i)b)\\w\\wc",[trim]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?=a(?i)b)\\w\\wc",[{parts, 2}]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?=a(?i)b)\\w\\wc",[]))), <<"abC">> = iolist_to_binary(join(re:split("abC","(?=a(?i)b)\\w\\wc",[trim]))), <<"abC">> = iolist_to_binary(join(re:split("abC","(?=a(?i)b)\\w\\wc",[{parts, 2}]))), <<"abC">> = iolist_to_binary(join(re:split("abC","(?=a(?i)b)\\w\\wc",[]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","(?=a(?i)b)\\w\\wc",[trim]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","(?=a(?i)b)\\w\\wc",[{parts, 2}]))), <<"aBC">> = iolist_to_binary(join(re:split("aBC","(?=a(?i)b)\\w\\wc",[]))), <<"ab:xx">> = iolist_to_binary(join(re:split("abxxc","(?<=a(?i)b)(\\w\\w)c",[trim]))), <<"ab:xx:">> = iolist_to_binary(join(re:split("abxxc","(?<=a(?i)b)(\\w\\w)c",[{parts, 2}]))), <<"ab:xx:">> = iolist_to_binary(join(re:split("abxxc","(?<=a(?i)b)(\\w\\w)c",[]))), <<"aB:xx">> = iolist_to_binary(join(re:split("aBxxc","(?<=a(?i)b)(\\w\\w)c",[trim]))), <<"aB:xx:">> = iolist_to_binary(join(re:split("aBxxc","(?<=a(?i)b)(\\w\\w)c",[{parts, 2}]))), <<"aB:xx:">> = iolist_to_binary(join(re:split("aBxxc","(?<=a(?i)b)(\\w\\w)c",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=a(?i)b)(\\w\\w)c",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=a(?i)b)(\\w\\w)c",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=a(?i)b)(\\w\\w)c",[]))), <<"Abxxc">> = iolist_to_binary(join(re:split("Abxxc","(?<=a(?i)b)(\\w\\w)c",[trim]))), <<"Abxxc">> = iolist_to_binary(join(re:split("Abxxc","(?<=a(?i)b)(\\w\\w)c",[{parts, 2}]))), <<"Abxxc">> = iolist_to_binary(join(re:split("Abxxc","(?<=a(?i)b)(\\w\\w)c",[]))), <<"ABxxc">> = iolist_to_binary(join(re:split("ABxxc","(?<=a(?i)b)(\\w\\w)c",[trim]))), <<"ABxxc">> = iolist_to_binary(join(re:split("ABxxc","(?<=a(?i)b)(\\w\\w)c",[{parts, 2}]))), <<"ABxxc">> = iolist_to_binary(join(re:split("ABxxc","(?<=a(?i)b)(\\w\\w)c",[]))), <<"abxxC">> = iolist_to_binary(join(re:split("abxxC","(?<=a(?i)b)(\\w\\w)c",[trim]))), <<"abxxC">> = iolist_to_binary(join(re:split("abxxC","(?<=a(?i)b)(\\w\\w)c",[{parts, 2}]))), <<"abxxC">> = iolist_to_binary(join(re:split("abxxC","(?<=a(?i)b)(\\w\\w)c",[]))), <<":a">> = iolist_to_binary(join(re:split("aA","(?:(a)|b)(?(1)A|B)",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aA","(?:(a)|b)(?(1)A|B)",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aA","(?:(a)|b)(?(1)A|B)",[]))), <<"">> = iolist_to_binary(join(re:split("bB","(?:(a)|b)(?(1)A|B)",[trim]))), <<"::">> = iolist_to_binary(join(re:split("bB","(?:(a)|b)(?(1)A|B)",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("bB","(?:(a)|b)(?(1)A|B)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(a)|b)(?(1)A|B)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(a)|b)(?(1)A|B)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(a)|b)(?(1)A|B)",[]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?:(a)|b)(?(1)A|B)",[trim]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?:(a)|b)(?(1)A|B)",[{parts, 2}]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?:(a)|b)(?(1)A|B)",[]))), <<"bA">> = iolist_to_binary(join(re:split("bA","(?:(a)|b)(?(1)A|B)",[trim]))), <<"bA">> = iolist_to_binary(join(re:split("bA","(?:(a)|b)(?(1)A|B)",[{parts, 2}]))), <<"bA">> = iolist_to_binary(join(re:split("bA","(?:(a)|b)(?(1)A|B)",[]))), <<":a">> = iolist_to_binary(join(re:split("aa","^(a)?(?(1)a|b)+$",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aa","^(a)?(?(1)a|b)+$",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aa","^(a)?(?(1)a|b)+$",[]))), <<"">> = iolist_to_binary(join(re:split("b","^(a)?(?(1)a|b)+$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a)?(?(1)a|b)+$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","^(a)?(?(1)a|b)+$",[]))), <<"">> = iolist_to_binary(join(re:split("bb","^(a)?(?(1)a|b)+$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("bb","^(a)?(?(1)a|b)+$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("bb","^(a)?(?(1)a|b)+$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a)?(?(1)a|b)+$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a)?(?(1)a|b)+$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a)?(?(1)a|b)+$",[]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a)?(?(1)a|b)+$",[trim]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a)?(?(1)a|b)+$",[{parts, 2}]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(a)?(?(1)a|b)+$",[]))), ok. run13() -> <<"">> = iolist_to_binary(join(re:split("abc:","^(?(?=abc)\\w{3}:|\\d\\d)$",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc:","^(?(?=abc)\\w{3}:|\\d\\d)$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc:","^(?(?=abc)\\w{3}:|\\d\\d)$",[]))), <<"">> = iolist_to_binary(join(re:split("12","^(?(?=abc)\\w{3}:|\\d\\d)$",[trim]))), <<":">> = iolist_to_binary(join(re:split("12","^(?(?=abc)\\w{3}:|\\d\\d)$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("12","^(?(?=abc)\\w{3}:|\\d\\d)$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?(?=abc)\\w{3}:|\\d\\d)$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?(?=abc)\\w{3}:|\\d\\d)$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?(?=abc)\\w{3}:|\\d\\d)$",[]))), <<"123">> = iolist_to_binary(join(re:split("123","^(?(?=abc)\\w{3}:|\\d\\d)$",[trim]))), <<"123">> = iolist_to_binary(join(re:split("123","^(?(?=abc)\\w{3}:|\\d\\d)$",[{parts, 2}]))), <<"123">> = iolist_to_binary(join(re:split("123","^(?(?=abc)\\w{3}:|\\d\\d)$",[]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","^(?(?=abc)\\w{3}:|\\d\\d)$",[trim]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","^(?(?=abc)\\w{3}:|\\d\\d)$",[{parts, 2}]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","^(?(?=abc)\\w{3}:|\\d\\d)$",[]))), <<"">> = iolist_to_binary(join(re:split("abc:","^(?(?!abc)\\d\\d|\\w{3}:)$",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc:","^(?(?!abc)\\d\\d|\\w{3}:)$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc:","^(?(?!abc)\\d\\d|\\w{3}:)$",[]))), <<"">> = iolist_to_binary(join(re:split("12","^(?(?!abc)\\d\\d|\\w{3}:)$",[trim]))), <<":">> = iolist_to_binary(join(re:split("12","^(?(?!abc)\\d\\d|\\w{3}:)$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("12","^(?(?!abc)\\d\\d|\\w{3}:)$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?(?!abc)\\d\\d|\\w{3}:)$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?(?!abc)\\d\\d|\\w{3}:)$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?(?!abc)\\d\\d|\\w{3}:)$",[]))), <<"123">> = iolist_to_binary(join(re:split("123","^(?(?!abc)\\d\\d|\\w{3}:)$",[trim]))), <<"123">> = iolist_to_binary(join(re:split("123","^(?(?!abc)\\d\\d|\\w{3}:)$",[{parts, 2}]))), <<"123">> = iolist_to_binary(join(re:split("123","^(?(?!abc)\\d\\d|\\w{3}:)$",[]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","^(?(?!abc)\\d\\d|\\w{3}:)$",[trim]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","^(?(?!abc)\\d\\d|\\w{3}:)$",[{parts, 2}]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","^(?(?!abc)\\d\\d|\\w{3}:)$",[]))), <<"foo">> = iolist_to_binary(join(re:split("foobar","(?(?<=foo)bar|cat)",[trim]))), <<"foo:">> = iolist_to_binary(join(re:split("foobar","(?(?<=foo)bar|cat)",[{parts, 2}]))), <<"foo:">> = iolist_to_binary(join(re:split("foobar","(?(?<=foo)bar|cat)",[]))), <<"">> = iolist_to_binary(join(re:split("cat","(?(?<=foo)bar|cat)",[trim]))), <<":">> = iolist_to_binary(join(re:split("cat","(?(?<=foo)bar|cat)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("cat","(?(?<=foo)bar|cat)",[]))), <<"f">> = iolist_to_binary(join(re:split("fcat","(?(?<=foo)bar|cat)",[trim]))), <<"f:">> = iolist_to_binary(join(re:split("fcat","(?(?<=foo)bar|cat)",[{parts, 2}]))), <<"f:">> = iolist_to_binary(join(re:split("fcat","(?(?<=foo)bar|cat)",[]))), <<"fo">> = iolist_to_binary(join(re:split("focat","(?(?<=foo)bar|cat)",[trim]))), <<"fo:">> = iolist_to_binary(join(re:split("focat","(?(?<=foo)bar|cat)",[{parts, 2}]))), <<"fo:">> = iolist_to_binary(join(re:split("focat","(?(?<=foo)bar|cat)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?(?<=foo)bar|cat)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?(?<=foo)bar|cat)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?(?<=foo)bar|cat)",[]))), <<"foocat">> = iolist_to_binary(join(re:split("foocat","(?(?<=foo)bar|cat)",[trim]))), <<"foocat">> = iolist_to_binary(join(re:split("foocat","(?(?<=foo)bar|cat)",[{parts, 2}]))), <<"foocat">> = iolist_to_binary(join(re:split("foocat","(?(?<=foo)bar|cat)",[]))), <<"foo">> = iolist_to_binary(join(re:split("foobar","(?(?> = iolist_to_binary(join(re:split("foobar","(?(?> = iolist_to_binary(join(re:split("foobar","(?(?> = iolist_to_binary(join(re:split("cat","(?(?> = iolist_to_binary(join(re:split("cat","(?(?> = iolist_to_binary(join(re:split("cat","(?(?> = iolist_to_binary(join(re:split("fcat","(?(?> = iolist_to_binary(join(re:split("fcat","(?(?> = iolist_to_binary(join(re:split("fcat","(?(?> = iolist_to_binary(join(re:split("focat","(?(?> = iolist_to_binary(join(re:split("focat","(?(?> = iolist_to_binary(join(re:split("focat","(?(?> = iolist_to_binary(join(re:split("*** Failers","(?(?> = iolist_to_binary(join(re:split("*** Failers","(?(?> = iolist_to_binary(join(re:split("*** Failers","(?(?> = iolist_to_binary(join(re:split("foocat","(?(?> = iolist_to_binary(join(re:split("foocat","(?(?> = iolist_to_binary(join(re:split("foocat","(?(?> = iolist_to_binary(join(re:split("abcd","( \\( )? [^()]+ (?(1) \\) |) ",[extended, trim]))), <<"::">> = iolist_to_binary(join(re:split("abcd","( \\( )? [^()]+ (?(1) \\) |) ",[extended, {parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("abcd","( \\( )? [^()]+ (?(1) \\) |) ",[extended]))), <<":(">> = iolist_to_binary(join(re:split("(abcd)","( \\( )? [^()]+ (?(1) \\) |) ",[extended, trim]))), <<":(:">> = iolist_to_binary(join(re:split("(abcd)","( \\( )? [^()]+ (?(1) \\) |) ",[extended, {parts, 2}]))), <<":(:">> = iolist_to_binary(join(re:split("(abcd)","( \\( )? [^()]+ (?(1) \\) |) ",[extended]))), <<":::(">> = iolist_to_binary(join(re:split("the quick (abcd) fox","( \\( )? [^()]+ (?(1) \\) |) ",[extended, trim]))), <<"::(abcd) fox">> = iolist_to_binary(join(re:split("the quick (abcd) fox","( \\( )? [^()]+ (?(1) \\) |) ",[extended, {parts, 2}]))), <<":::(:::">> = iolist_to_binary(join(re:split("the quick (abcd) fox","( \\( )? [^()]+ (?(1) \\) |) ",[extended]))), <<"(">> = iolist_to_binary(join(re:split("(abcd","( \\( )? [^()]+ (?(1) \\) |) ",[extended, trim]))), <<"(::">> = iolist_to_binary(join(re:split("(abcd","( \\( )? [^()]+ (?(1) \\) |) ",[extended, {parts, 2}]))), <<"(::">> = iolist_to_binary(join(re:split("(abcd","( \\( )? [^()]+ (?(1) \\) |) ",[extended]))), <<"">> = iolist_to_binary(join(re:split("abcd","( \\( )? [^()]+ (?(1) \\) ) ",[extended, trim]))), <<"::">> = iolist_to_binary(join(re:split("abcd","( \\( )? [^()]+ (?(1) \\) ) ",[extended, {parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("abcd","( \\( )? [^()]+ (?(1) \\) ) ",[extended]))), <<":(">> = iolist_to_binary(join(re:split("(abcd)","( \\( )? [^()]+ (?(1) \\) ) ",[extended, trim]))), <<":(:">> = iolist_to_binary(join(re:split("(abcd)","( \\( )? [^()]+ (?(1) \\) ) ",[extended, {parts, 2}]))), <<":(:">> = iolist_to_binary(join(re:split("(abcd)","( \\( )? [^()]+ (?(1) \\) ) ",[extended]))), <<":::(">> = iolist_to_binary(join(re:split("the quick (abcd) fox","( \\( )? [^()]+ (?(1) \\) ) ",[extended, trim]))), <<"::(abcd) fox">> = iolist_to_binary(join(re:split("the quick (abcd) fox","( \\( )? [^()]+ (?(1) \\) ) ",[extended, {parts, 2}]))), <<":::(:::">> = iolist_to_binary(join(re:split("the quick (abcd) fox","( \\( )? [^()]+ (?(1) \\) ) ",[extended]))), <<"(">> = iolist_to_binary(join(re:split("(abcd","( \\( )? [^()]+ (?(1) \\) ) ",[extended, trim]))), <<"(::">> = iolist_to_binary(join(re:split("(abcd","( \\( )? [^()]+ (?(1) \\) ) ",[extended, {parts, 2}]))), <<"(::">> = iolist_to_binary(join(re:split("(abcd","( \\( )? [^()]+ (?(1) \\) ) ",[extended]))), <<":1:2">> = iolist_to_binary(join(re:split("12","^(?(2)a|(1)(2))+$",[trim]))), <<":1:2:">> = iolist_to_binary(join(re:split("12","^(?(2)a|(1)(2))+$",[{parts, 2}]))), <<":1:2:">> = iolist_to_binary(join(re:split("12","^(?(2)a|(1)(2))+$",[]))), <<":1:2">> = iolist_to_binary(join(re:split("12a","^(?(2)a|(1)(2))+$",[trim]))), <<":1:2:">> = iolist_to_binary(join(re:split("12a","^(?(2)a|(1)(2))+$",[{parts, 2}]))), <<":1:2:">> = iolist_to_binary(join(re:split("12a","^(?(2)a|(1)(2))+$",[]))), <<":1:2">> = iolist_to_binary(join(re:split("12aa","^(?(2)a|(1)(2))+$",[trim]))), <<":1:2:">> = iolist_to_binary(join(re:split("12aa","^(?(2)a|(1)(2))+$",[{parts, 2}]))), <<":1:2:">> = iolist_to_binary(join(re:split("12aa","^(?(2)a|(1)(2))+$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?(2)a|(1)(2))+$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?(2)a|(1)(2))+$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?(2)a|(1)(2))+$",[]))), <<"1234">> = iolist_to_binary(join(re:split("1234","^(?(2)a|(1)(2))+$",[trim]))), <<"1234">> = iolist_to_binary(join(re:split("1234","^(?(2)a|(1)(2))+$",[{parts, 2}]))), <<"1234">> = iolist_to_binary(join(re:split("1234","^(?(2)a|(1)(2))+$",[]))), <<":blah">> = iolist_to_binary(join(re:split("blah blah","((?i)blah)\\s+\\1",[trim]))), <<":blah:">> = iolist_to_binary(join(re:split("blah blah","((?i)blah)\\s+\\1",[{parts, 2}]))), <<":blah:">> = iolist_to_binary(join(re:split("blah blah","((?i)blah)\\s+\\1",[]))), <<":BLAH">> = iolist_to_binary(join(re:split("BLAH BLAH","((?i)blah)\\s+\\1",[trim]))), <<":BLAH:">> = iolist_to_binary(join(re:split("BLAH BLAH","((?i)blah)\\s+\\1",[{parts, 2}]))), <<":BLAH:">> = iolist_to_binary(join(re:split("BLAH BLAH","((?i)blah)\\s+\\1",[]))), <<":Blah">> = iolist_to_binary(join(re:split("Blah Blah","((?i)blah)\\s+\\1",[trim]))), <<":Blah:">> = iolist_to_binary(join(re:split("Blah Blah","((?i)blah)\\s+\\1",[{parts, 2}]))), <<":Blah:">> = iolist_to_binary(join(re:split("Blah Blah","((?i)blah)\\s+\\1",[]))), <<":blaH">> = iolist_to_binary(join(re:split("blaH blaH","((?i)blah)\\s+\\1",[trim]))), <<":blaH:">> = iolist_to_binary(join(re:split("blaH blaH","((?i)blah)\\s+\\1",[{parts, 2}]))), <<":blaH:">> = iolist_to_binary(join(re:split("blaH blaH","((?i)blah)\\s+\\1",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?i)blah)\\s+\\1",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?i)blah)\\s+\\1",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?i)blah)\\s+\\1",[]))), <<"blah BLAH">> = iolist_to_binary(join(re:split("blah BLAH","((?i)blah)\\s+\\1",[trim]))), <<"blah BLAH">> = iolist_to_binary(join(re:split("blah BLAH","((?i)blah)\\s+\\1",[{parts, 2}]))), <<"blah BLAH">> = iolist_to_binary(join(re:split("blah BLAH","((?i)blah)\\s+\\1",[]))), <<"Blah blah">> = iolist_to_binary(join(re:split("Blah blah","((?i)blah)\\s+\\1",[trim]))), <<"Blah blah">> = iolist_to_binary(join(re:split("Blah blah","((?i)blah)\\s+\\1",[{parts, 2}]))), <<"Blah blah">> = iolist_to_binary(join(re:split("Blah blah","((?i)blah)\\s+\\1",[]))), <<"blaH blah">> = iolist_to_binary(join(re:split("blaH blah","((?i)blah)\\s+\\1",[trim]))), <<"blaH blah">> = iolist_to_binary(join(re:split("blaH blah","((?i)blah)\\s+\\1",[{parts, 2}]))), <<"blaH blah">> = iolist_to_binary(join(re:split("blaH blah","((?i)blah)\\s+\\1",[]))), <<":blah">> = iolist_to_binary(join(re:split("blah blah","((?i)blah)\\s+(?i:\\1)",[trim]))), <<":blah:">> = iolist_to_binary(join(re:split("blah blah","((?i)blah)\\s+(?i:\\1)",[{parts, 2}]))), <<":blah:">> = iolist_to_binary(join(re:split("blah blah","((?i)blah)\\s+(?i:\\1)",[]))), <<":BLAH">> = iolist_to_binary(join(re:split("BLAH BLAH","((?i)blah)\\s+(?i:\\1)",[trim]))), <<":BLAH:">> = iolist_to_binary(join(re:split("BLAH BLAH","((?i)blah)\\s+(?i:\\1)",[{parts, 2}]))), <<":BLAH:">> = iolist_to_binary(join(re:split("BLAH BLAH","((?i)blah)\\s+(?i:\\1)",[]))), <<":Blah">> = iolist_to_binary(join(re:split("Blah Blah","((?i)blah)\\s+(?i:\\1)",[trim]))), <<":Blah:">> = iolist_to_binary(join(re:split("Blah Blah","((?i)blah)\\s+(?i:\\1)",[{parts, 2}]))), <<":Blah:">> = iolist_to_binary(join(re:split("Blah Blah","((?i)blah)\\s+(?i:\\1)",[]))), <<":blaH">> = iolist_to_binary(join(re:split("blaH blaH","((?i)blah)\\s+(?i:\\1)",[trim]))), <<":blaH:">> = iolist_to_binary(join(re:split("blaH blaH","((?i)blah)\\s+(?i:\\1)",[{parts, 2}]))), <<":blaH:">> = iolist_to_binary(join(re:split("blaH blaH","((?i)blah)\\s+(?i:\\1)",[]))), <<":blah">> = iolist_to_binary(join(re:split("blah BLAH","((?i)blah)\\s+(?i:\\1)",[trim]))), <<":blah:">> = iolist_to_binary(join(re:split("blah BLAH","((?i)blah)\\s+(?i:\\1)",[{parts, 2}]))), <<":blah:">> = iolist_to_binary(join(re:split("blah BLAH","((?i)blah)\\s+(?i:\\1)",[]))), <<":Blah">> = iolist_to_binary(join(re:split("Blah blah","((?i)blah)\\s+(?i:\\1)",[trim]))), <<":Blah:">> = iolist_to_binary(join(re:split("Blah blah","((?i)blah)\\s+(?i:\\1)",[{parts, 2}]))), <<":Blah:">> = iolist_to_binary(join(re:split("Blah blah","((?i)blah)\\s+(?i:\\1)",[]))), <<":blaH">> = iolist_to_binary(join(re:split("blaH blah","((?i)blah)\\s+(?i:\\1)",[trim]))), <<":blaH:">> = iolist_to_binary(join(re:split("blaH blah","((?i)blah)\\s+(?i:\\1)",[{parts, 2}]))), <<":blaH:">> = iolist_to_binary(join(re:split("blaH blah","((?i)blah)\\s+(?i:\\1)",[]))), <<"">> = iolist_to_binary(join(re:split("a","(?>a*)*",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","(?>a*)*",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","(?>a*)*",[]))), <<"">> = iolist_to_binary(join(re:split("aa","(?>a*)*",[trim]))), <<":">> = iolist_to_binary(join(re:split("aa","(?>a*)*",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aa","(?>a*)*",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","(?>a*)*",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","(?>a*)*",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","(?>a*)*",[]))), <<"">> = iolist_to_binary(join(re:split("abc","(abc|)+",[trim]))), <<"::">> = iolist_to_binary(join(re:split("abc","(abc|)+",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("abc","(abc|)+",[]))), <<"">> = iolist_to_binary(join(re:split("abcabc","(abc|)+",[trim]))), <<"::">> = iolist_to_binary(join(re:split("abcabc","(abc|)+",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("abcabc","(abc|)+",[]))), <<"">> = iolist_to_binary(join(re:split("abcabcabc","(abc|)+",[trim]))), <<"::">> = iolist_to_binary(join(re:split("abcabcabc","(abc|)+",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("abcabcabc","(abc|)+",[]))), <<"x::y::z">> = iolist_to_binary(join(re:split("xyz","(abc|)+",[trim]))), <<"x::yz">> = iolist_to_binary(join(re:split("xyz","(abc|)+",[{parts, 2}]))), <<"x::y::z::">> = iolist_to_binary(join(re:split("xyz","(abc|)+",[]))), <<"">> = iolist_to_binary(join(re:split("a","([a]*)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a","([a]*)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a","([a]*)*",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaa","([a]*)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("aaaaa","([a]*)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("aaaaa","([a]*)*",[]))), <<"">> = iolist_to_binary(join(re:split("a","([ab]*)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a","([ab]*)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a","([ab]*)*",[]))), <<"">> = iolist_to_binary(join(re:split("b","([ab]*)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","([ab]*)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","([ab]*)*",[]))), <<"">> = iolist_to_binary(join(re:split("ababab","([ab]*)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("ababab","([ab]*)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("ababab","([ab]*)*",[]))), <<"::c::d::e">> = iolist_to_binary(join(re:split("aaaabcde","([ab]*)*",[trim]))), <<"::cde">> = iolist_to_binary(join(re:split("aaaabcde","([ab]*)*",[{parts, 2}]))), <<"::c::d::e::">> = iolist_to_binary(join(re:split("aaaabcde","([ab]*)*",[]))), <<"">> = iolist_to_binary(join(re:split("bbbb","([ab]*)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("bbbb","([ab]*)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("bbbb","([ab]*)*",[]))), <<"">> = iolist_to_binary(join(re:split("b","([^a]*)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","([^a]*)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","([^a]*)*",[]))), <<"">> = iolist_to_binary(join(re:split("bbbb","([^a]*)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("bbbb","([^a]*)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("bbbb","([^a]*)*",[]))), <<"a::a::a">> = iolist_to_binary(join(re:split("aaa","([^a]*)*",[trim]))), <<"a::aa">> = iolist_to_binary(join(re:split("aaa","([^a]*)*",[{parts, 2}]))), <<"a::a::a::">> = iolist_to_binary(join(re:split("aaa","([^a]*)*",[]))), <<"">> = iolist_to_binary(join(re:split("cccc","([^ab]*)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("cccc","([^ab]*)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("cccc","([^ab]*)*",[]))), <<"a::b::a::b">> = iolist_to_binary(join(re:split("abab","([^ab]*)*",[trim]))), <<"a::bab">> = iolist_to_binary(join(re:split("abab","([^ab]*)*",[{parts, 2}]))), <<"a::b::a::b::">> = iolist_to_binary(join(re:split("abab","([^ab]*)*",[]))), <<"">> = iolist_to_binary(join(re:split("a","([a]*?)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a","([a]*?)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a","([a]*?)*",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","([a]*?)*",[trim]))), <<"::aaa">> = iolist_to_binary(join(re:split("aaaa","([a]*?)*",[{parts, 2}]))), <<"::::::::">> = iolist_to_binary(join(re:split("aaaa","([a]*?)*",[]))), <<"">> = iolist_to_binary(join(re:split("a","([ab]*?)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a","([ab]*?)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a","([ab]*?)*",[]))), <<"">> = iolist_to_binary(join(re:split("b","([ab]*?)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","([ab]*?)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","([ab]*?)*",[]))), <<"">> = iolist_to_binary(join(re:split("abab","([ab]*?)*",[trim]))), <<"::bab">> = iolist_to_binary(join(re:split("abab","([ab]*?)*",[{parts, 2}]))), <<"::::::::">> = iolist_to_binary(join(re:split("abab","([ab]*?)*",[]))), <<"">> = iolist_to_binary(join(re:split("baba","([ab]*?)*",[trim]))), <<"::aba">> = iolist_to_binary(join(re:split("baba","([ab]*?)*",[{parts, 2}]))), <<"::::::::">> = iolist_to_binary(join(re:split("baba","([ab]*?)*",[]))), <<"">> = iolist_to_binary(join(re:split("b","([^a]*?)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","([^a]*?)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","([^a]*?)*",[]))), <<"">> = iolist_to_binary(join(re:split("bbbb","([^a]*?)*",[trim]))), <<"::bbb">> = iolist_to_binary(join(re:split("bbbb","([^a]*?)*",[{parts, 2}]))), <<"::::::::">> = iolist_to_binary(join(re:split("bbbb","([^a]*?)*",[]))), <<"a::a::a">> = iolist_to_binary(join(re:split("aaa","([^a]*?)*",[trim]))), <<"a::aa">> = iolist_to_binary(join(re:split("aaa","([^a]*?)*",[{parts, 2}]))), <<"a::a::a::">> = iolist_to_binary(join(re:split("aaa","([^a]*?)*",[]))), <<"">> = iolist_to_binary(join(re:split("c","([^ab]*?)*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("c","([^ab]*?)*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("c","([^ab]*?)*",[]))), <<"">> = iolist_to_binary(join(re:split("cccc","([^ab]*?)*",[trim]))), <<"::ccc">> = iolist_to_binary(join(re:split("cccc","([^ab]*?)*",[{parts, 2}]))), <<"::::::::">> = iolist_to_binary(join(re:split("cccc","([^ab]*?)*",[]))), <<"b::a::b::a">> = iolist_to_binary(join(re:split("baba","([^ab]*?)*",[trim]))), <<"b::aba">> = iolist_to_binary(join(re:split("baba","([^ab]*?)*",[{parts, 2}]))), <<"b::a::b::a::">> = iolist_to_binary(join(re:split("baba","([^ab]*?)*",[]))), <<"">> = iolist_to_binary(join(re:split("a","(?>a*)*",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","(?>a*)*",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","(?>a*)*",[]))), <<":b:c:d:e">> = iolist_to_binary(join(re:split("aaabcde","(?>a*)*",[trim]))), <<":bcde">> = iolist_to_binary(join(re:split("aaabcde","(?>a*)*",[{parts, 2}]))), <<":b:c:d:e:">> = iolist_to_binary(join(re:split("aaabcde","(?>a*)*",[]))), ok. run14() -> <<"">> = iolist_to_binary(join(re:split("aaaaa","((?>a*))*",[trim]))), <<"::">> = iolist_to_binary(join(re:split("aaaaa","((?>a*))*",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("aaaaa","((?>a*))*",[]))), <<"::b::b">> = iolist_to_binary(join(re:split("aabbaa","((?>a*))*",[trim]))), <<"::bbaa">> = iolist_to_binary(join(re:split("aabbaa","((?>a*))*",[{parts, 2}]))), <<"::b::b::">> = iolist_to_binary(join(re:split("aabbaa","((?>a*))*",[]))), <<"a::a::a::a::a">> = iolist_to_binary(join(re:split("aaaaa","((?>a*?))*",[trim]))), <<"a::aaaa">> = iolist_to_binary(join(re:split("aaaaa","((?>a*?))*",[{parts, 2}]))), <<"a::a::a::a::a::">> = iolist_to_binary(join(re:split("aaaaa","((?>a*?))*",[]))), <<"a::a::b::b::a::a">> = iolist_to_binary(join(re:split("aabbaa","((?>a*?))*",[trim]))), <<"a::abbaa">> = iolist_to_binary(join(re:split("aabbaa","((?>a*?))*",[{parts, 2}]))), <<"a::a::b::b::a::a::">> = iolist_to_binary(join(re:split("aabbaa","((?>a*?))*",[]))), <<"">> = iolist_to_binary(join(re:split("12-sep-98","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("12-sep-98","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("12-sep-98","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended]))), <<"">> = iolist_to_binary(join(re:split("12-09-98","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("12-09-98","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("12-09-98","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended]))), <<"sep-12-98">> = iolist_to_binary(join(re:split("sep-12-98","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended, trim]))), <<"sep-12-98">> = iolist_to_binary(join(re:split("sep-12-98","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended, {parts, 2}]))), <<"sep-12-98">> = iolist_to_binary(join(re:split("sep-12-98","(?(?=[^a-z]+[a-z]) \\d{2}-[a-z]{3}-\\d{2} | \\d{2}-\\d{2}-\\d{2} ) ",[extended]))), <<"foo:foo">> = iolist_to_binary(join(re:split("foobarfoo","(?<=(foo))bar\\1",[trim]))), <<"foo:foo:">> = iolist_to_binary(join(re:split("foobarfoo","(?<=(foo))bar\\1",[{parts, 2}]))), <<"foo:foo:">> = iolist_to_binary(join(re:split("foobarfoo","(?<=(foo))bar\\1",[]))), <<"foo:foo:tling">> = iolist_to_binary(join(re:split("foobarfootling","(?<=(foo))bar\\1",[trim]))), <<"foo:foo:tling">> = iolist_to_binary(join(re:split("foobarfootling","(?<=(foo))bar\\1",[{parts, 2}]))), <<"foo:foo:tling">> = iolist_to_binary(join(re:split("foobarfootling","(?<=(foo))bar\\1",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=(foo))bar\\1",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=(foo))bar\\1",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=(foo))bar\\1",[]))), <<"foobar">> = iolist_to_binary(join(re:split("foobar","(?<=(foo))bar\\1",[trim]))), <<"foobar">> = iolist_to_binary(join(re:split("foobar","(?<=(foo))bar\\1",[{parts, 2}]))), <<"foobar">> = iolist_to_binary(join(re:split("foobar","(?<=(foo))bar\\1",[]))), <<"barfoo">> = iolist_to_binary(join(re:split("barfoo","(?<=(foo))bar\\1",[trim]))), <<"barfoo">> = iolist_to_binary(join(re:split("barfoo","(?<=(foo))bar\\1",[{parts, 2}]))), <<"barfoo">> = iolist_to_binary(join(re:split("barfoo","(?<=(foo))bar\\1",[]))), <<"">> = iolist_to_binary(join(re:split("saturday","(?i:saturday|sunday)",[trim]))), <<":">> = iolist_to_binary(join(re:split("saturday","(?i:saturday|sunday)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("saturday","(?i:saturday|sunday)",[]))), <<"">> = iolist_to_binary(join(re:split("sunday","(?i:saturday|sunday)",[trim]))), <<":">> = iolist_to_binary(join(re:split("sunday","(?i:saturday|sunday)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("sunday","(?i:saturday|sunday)",[]))), <<"">> = iolist_to_binary(join(re:split("Saturday","(?i:saturday|sunday)",[trim]))), <<":">> = iolist_to_binary(join(re:split("Saturday","(?i:saturday|sunday)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("Saturday","(?i:saturday|sunday)",[]))), <<"">> = iolist_to_binary(join(re:split("Sunday","(?i:saturday|sunday)",[trim]))), <<":">> = iolist_to_binary(join(re:split("Sunday","(?i:saturday|sunday)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("Sunday","(?i:saturday|sunday)",[]))), <<"">> = iolist_to_binary(join(re:split("SATURDAY","(?i:saturday|sunday)",[trim]))), <<":">> = iolist_to_binary(join(re:split("SATURDAY","(?i:saturday|sunday)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("SATURDAY","(?i:saturday|sunday)",[]))), <<"">> = iolist_to_binary(join(re:split("SUNDAY","(?i:saturday|sunday)",[trim]))), <<":">> = iolist_to_binary(join(re:split("SUNDAY","(?i:saturday|sunday)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("SUNDAY","(?i:saturday|sunday)",[]))), <<"">> = iolist_to_binary(join(re:split("SunDay","(?i:saturday|sunday)",[trim]))), <<":">> = iolist_to_binary(join(re:split("SunDay","(?i:saturday|sunday)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("SunDay","(?i:saturday|sunday)",[]))), <<":abc">> = iolist_to_binary(join(re:split("abcx","(a(?i)bc|BB)x",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcx","(a(?i)bc|BB)x",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcx","(a(?i)bc|BB)x",[]))), <<":aBC">> = iolist_to_binary(join(re:split("aBCx","(a(?i)bc|BB)x",[trim]))), <<":aBC:">> = iolist_to_binary(join(re:split("aBCx","(a(?i)bc|BB)x",[{parts, 2}]))), <<":aBC:">> = iolist_to_binary(join(re:split("aBCx","(a(?i)bc|BB)x",[]))), <<":bb">> = iolist_to_binary(join(re:split("bbx","(a(?i)bc|BB)x",[trim]))), <<":bb:">> = iolist_to_binary(join(re:split("bbx","(a(?i)bc|BB)x",[{parts, 2}]))), <<":bb:">> = iolist_to_binary(join(re:split("bbx","(a(?i)bc|BB)x",[]))), <<":BB">> = iolist_to_binary(join(re:split("BBx","(a(?i)bc|BB)x",[trim]))), <<":BB:">> = iolist_to_binary(join(re:split("BBx","(a(?i)bc|BB)x",[{parts, 2}]))), <<":BB:">> = iolist_to_binary(join(re:split("BBx","(a(?i)bc|BB)x",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a(?i)bc|BB)x",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a(?i)bc|BB)x",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(a(?i)bc|BB)x",[]))), <<"abcX">> = iolist_to_binary(join(re:split("abcX","(a(?i)bc|BB)x",[trim]))), <<"abcX">> = iolist_to_binary(join(re:split("abcX","(a(?i)bc|BB)x",[{parts, 2}]))), <<"abcX">> = iolist_to_binary(join(re:split("abcX","(a(?i)bc|BB)x",[]))), <<"aBCX">> = iolist_to_binary(join(re:split("aBCX","(a(?i)bc|BB)x",[trim]))), <<"aBCX">> = iolist_to_binary(join(re:split("aBCX","(a(?i)bc|BB)x",[{parts, 2}]))), <<"aBCX">> = iolist_to_binary(join(re:split("aBCX","(a(?i)bc|BB)x",[]))), <<"bbX">> = iolist_to_binary(join(re:split("bbX","(a(?i)bc|BB)x",[trim]))), <<"bbX">> = iolist_to_binary(join(re:split("bbX","(a(?i)bc|BB)x",[{parts, 2}]))), <<"bbX">> = iolist_to_binary(join(re:split("bbX","(a(?i)bc|BB)x",[]))), <<"BBX">> = iolist_to_binary(join(re:split("BBX","(a(?i)bc|BB)x",[trim]))), <<"BBX">> = iolist_to_binary(join(re:split("BBX","(a(?i)bc|BB)x",[{parts, 2}]))), <<"BBX">> = iolist_to_binary(join(re:split("BBX","(a(?i)bc|BB)x",[]))), <<":ac">> = iolist_to_binary(join(re:split("ac","^([ab](?i)[cd]|[ef])",[trim]))), <<":ac:">> = iolist_to_binary(join(re:split("ac","^([ab](?i)[cd]|[ef])",[{parts, 2}]))), <<":ac:">> = iolist_to_binary(join(re:split("ac","^([ab](?i)[cd]|[ef])",[]))), <<":aC">> = iolist_to_binary(join(re:split("aC","^([ab](?i)[cd]|[ef])",[trim]))), <<":aC:">> = iolist_to_binary(join(re:split("aC","^([ab](?i)[cd]|[ef])",[{parts, 2}]))), <<":aC:">> = iolist_to_binary(join(re:split("aC","^([ab](?i)[cd]|[ef])",[]))), <<":bD">> = iolist_to_binary(join(re:split("bD","^([ab](?i)[cd]|[ef])",[trim]))), <<":bD:">> = iolist_to_binary(join(re:split("bD","^([ab](?i)[cd]|[ef])",[{parts, 2}]))), <<":bD:">> = iolist_to_binary(join(re:split("bD","^([ab](?i)[cd]|[ef])",[]))), <<":e:lephant">> = iolist_to_binary(join(re:split("elephant","^([ab](?i)[cd]|[ef])",[trim]))), <<":e:lephant">> = iolist_to_binary(join(re:split("elephant","^([ab](?i)[cd]|[ef])",[{parts, 2}]))), <<":e:lephant">> = iolist_to_binary(join(re:split("elephant","^([ab](?i)[cd]|[ef])",[]))), <<":E:urope">> = iolist_to_binary(join(re:split("Europe","^([ab](?i)[cd]|[ef])",[trim]))), <<":E:urope">> = iolist_to_binary(join(re:split("Europe","^([ab](?i)[cd]|[ef])",[{parts, 2}]))), <<":E:urope">> = iolist_to_binary(join(re:split("Europe","^([ab](?i)[cd]|[ef])",[]))), <<":f:rog">> = iolist_to_binary(join(re:split("frog","^([ab](?i)[cd]|[ef])",[trim]))), <<":f:rog">> = iolist_to_binary(join(re:split("frog","^([ab](?i)[cd]|[ef])",[{parts, 2}]))), <<":f:rog">> = iolist_to_binary(join(re:split("frog","^([ab](?i)[cd]|[ef])",[]))), <<":F:rance">> = iolist_to_binary(join(re:split("France","^([ab](?i)[cd]|[ef])",[trim]))), <<":F:rance">> = iolist_to_binary(join(re:split("France","^([ab](?i)[cd]|[ef])",[{parts, 2}]))), <<":F:rance">> = iolist_to_binary(join(re:split("France","^([ab](?i)[cd]|[ef])",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^([ab](?i)[cd]|[ef])",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^([ab](?i)[cd]|[ef])",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^([ab](?i)[cd]|[ef])",[]))), <<"Africa">> = iolist_to_binary(join(re:split("Africa","^([ab](?i)[cd]|[ef])",[trim]))), <<"Africa">> = iolist_to_binary(join(re:split("Africa","^([ab](?i)[cd]|[ef])",[{parts, 2}]))), <<"Africa">> = iolist_to_binary(join(re:split("Africa","^([ab](?i)[cd]|[ef])",[]))), <<":ab">> = iolist_to_binary(join(re:split("ab","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[trim]))), <<":ab:">> = iolist_to_binary(join(re:split("ab","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[{parts, 2}]))), <<":ab:">> = iolist_to_binary(join(re:split("ab","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[]))), <<":aBd">> = iolist_to_binary(join(re:split("aBd","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[trim]))), <<":aBd:">> = iolist_to_binary(join(re:split("aBd","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[{parts, 2}]))), <<":aBd:">> = iolist_to_binary(join(re:split("aBd","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[]))), <<":xy">> = iolist_to_binary(join(re:split("xy","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[trim]))), <<":xy:">> = iolist_to_binary(join(re:split("xy","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[{parts, 2}]))), <<":xy:">> = iolist_to_binary(join(re:split("xy","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[]))), <<":xY">> = iolist_to_binary(join(re:split("xY","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[trim]))), <<":xY:">> = iolist_to_binary(join(re:split("xY","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[{parts, 2}]))), <<":xY:">> = iolist_to_binary(join(re:split("xY","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[]))), <<":z:ebra">> = iolist_to_binary(join(re:split("zebra","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[trim]))), <<":z:ebra">> = iolist_to_binary(join(re:split("zebra","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[{parts, 2}]))), <<":z:ebra">> = iolist_to_binary(join(re:split("zebra","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[]))), <<":Z:ambesi">> = iolist_to_binary(join(re:split("Zambesi","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[trim]))), <<":Z:ambesi">> = iolist_to_binary(join(re:split("Zambesi","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[{parts, 2}]))), <<":Z:ambesi">> = iolist_to_binary(join(re:split("Zambesi","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[]))), <<"aCD">> = iolist_to_binary(join(re:split("aCD","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[trim]))), <<"aCD">> = iolist_to_binary(join(re:split("aCD","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[{parts, 2}]))), <<"aCD">> = iolist_to_binary(join(re:split("aCD","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[]))), <<"XY">> = iolist_to_binary(join(re:split("XY","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[trim]))), <<"XY">> = iolist_to_binary(join(re:split("XY","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[{parts, 2}]))), <<"XY">> = iolist_to_binary(join(re:split("XY","^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)",[]))), <<"foo ">> = iolist_to_binary(join(re:split("foo bar","(?<=foo\\n)^bar",[multiline,trim]))), <<"foo :">> = iolist_to_binary(join(re:split("foo bar","(?<=foo\\n)^bar",[multiline,{parts,2}]))), <<"foo :">> = iolist_to_binary(join(re:split("foo bar","(?<=foo\\n)^bar",[multiline]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=foo\\n)^bar",[multiline, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=foo\\n)^bar",[multiline, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=foo\\n)^bar",[multiline]))), <<"bar">> = iolist_to_binary(join(re:split("bar","(?<=foo\\n)^bar",[multiline, trim]))), <<"bar">> = iolist_to_binary(join(re:split("bar","(?<=foo\\n)^bar",[multiline, {parts, 2}]))), <<"bar">> = iolist_to_binary(join(re:split("bar","(?<=foo\\n)^bar",[multiline]))), <<"baz bar">> = iolist_to_binary(join(re:split("baz bar","(?<=foo\\n)^bar",[multiline,trim]))), <<"baz bar">> = iolist_to_binary(join(re:split("baz bar","(?<=foo\\n)^bar",[multiline,{parts,2}]))), <<"baz bar">> = iolist_to_binary(join(re:split("baz bar","(?<=foo\\n)^bar",[multiline]))), <<"bar">> = iolist_to_binary(join(re:split("barbaz","(?<=(?> = iolist_to_binary(join(re:split("barbaz","(?<=(?> = iolist_to_binary(join(re:split("barbaz","(?<=(?> = iolist_to_binary(join(re:split("barbarbaz","(?<=(?> = iolist_to_binary(join(re:split("barbarbaz","(?<=(?> = iolist_to_binary(join(re:split("barbarbaz","(?<=(?> = iolist_to_binary(join(re:split("koobarbaz","(?<=(?> = iolist_to_binary(join(re:split("koobarbaz","(?<=(?> = iolist_to_binary(join(re:split("koobarbaz","(?<=(?> = iolist_to_binary(join(re:split("*** Failers","(?<=(?> = iolist_to_binary(join(re:split("*** Failers","(?<=(?> = iolist_to_binary(join(re:split("*** Failers","(?<=(?> = iolist_to_binary(join(re:split("baz","(?<=(?> = iolist_to_binary(join(re:split("baz","(?<=(?> = iolist_to_binary(join(re:split("baz","(?<=(?> = iolist_to_binary(join(re:split("foobarbaz","(?<=(?> = iolist_to_binary(join(re:split("foobarbaz","(?<=(?> = iolist_to_binary(join(re:split("foobarbaz","(?<=(?> = iolist_to_binary(join(re:split("a","^(a\\1?){4}$",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","^(a\\1?){4}$",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","^(a\\1?){4}$",[]))), <<"aa">> = iolist_to_binary(join(re:split("aa","^(a\\1?){4}$",[trim]))), <<"aa">> = iolist_to_binary(join(re:split("aa","^(a\\1?){4}$",[{parts, 2}]))), <<"aa">> = iolist_to_binary(join(re:split("aa","^(a\\1?){4}$",[]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(a\\1?){4}$",[trim]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(a\\1?){4}$",[{parts, 2}]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(a\\1?){4}$",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaaa","^(a\\1?){4}$",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaa","^(a\\1?){4}$",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaaaaa","^(a\\1?){4}$",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaaaaaa","^(a\\1?){4}$",[]))), <<"aaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a\\1?){4}$",[trim]))), <<"aaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<"aaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a\\1?){4}$",[]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a\\1?){4}$",[trim]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a\\1?){4}$",[]))), <<":aaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a\\1?){4}$",[trim]))), <<":aaaa:">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<":aaaa:">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a\\1?){4}$",[]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a\\1?){4}$",[trim]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a\\1?){4}$",[]))), <<"aaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaa","^(a\\1?){4}$",[trim]))), <<"aaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<"aaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaa","^(a\\1?){4}$",[]))), <<"aaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaa","^(a\\1?){4}$",[trim]))), <<"aaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<"aaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaa","^(a\\1?){4}$",[]))), <<"aaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaa","^(a\\1?){4}$",[trim]))), <<"aaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<"aaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaa","^(a\\1?){4}$",[]))), <<"aaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaa","^(a\\1?){4}$",[trim]))), <<"aaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<"aaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaa","^(a\\1?){4}$",[]))), <<"aaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaa","^(a\\1?){4}$",[trim]))), <<"aaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<"aaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaa","^(a\\1?){4}$",[]))), <<"a">> = iolist_to_binary(join(re:split("a","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<"aa">> = iolist_to_binary(join(re:split("aa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<"aa">> = iolist_to_binary(join(re:split("aa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<"aa">> = iolist_to_binary(join(re:split("aa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<":a:a:a:a">> = iolist_to_binary(join(re:split("aaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<":a:a:a:a:">> = iolist_to_binary(join(re:split("aaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<":a:a:a:a:">> = iolist_to_binary(join(re:split("aaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<":a:aa:a:a">> = iolist_to_binary(join(re:split("aaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<":a:aa:a:a:">> = iolist_to_binary(join(re:split("aaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<":a:aa:a:a:">> = iolist_to_binary(join(re:split("aaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<":a:aa:a:aa">> = iolist_to_binary(join(re:split("aaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<":a:aa:a:aa:">> = iolist_to_binary(join(re:split("aaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<":a:aa:a:aa:">> = iolist_to_binary(join(re:split("aaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<":a:aa:aaa:a">> = iolist_to_binary(join(re:split("aaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<":a:aa:aaa:a:">> = iolist_to_binary(join(re:split("aaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<":a:aa:aaa:a:">> = iolist_to_binary(join(re:split("aaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<"aaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<"aaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<"aaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<":a:aa:aaa:aaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<":a:aa:aaa:aaaa:">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<":a:aa:aaa:aaaa:">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<"aaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<"aaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<"aaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<"aaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<"aaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<"aaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<"aaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<"aaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<"aaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<"aaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<"aaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<"aaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<"aaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[trim]))), <<"aaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[{parts, 2}]))), <<"aaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaa","^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$",[]))), <<"">> = iolist_to_binary(join(re:split("abc","abc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","abc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","abc",[]))), <<"x:y">> = iolist_to_binary(join(re:split("xabcy","abc",[trim]))), <<"x:y">> = iolist_to_binary(join(re:split("xabcy","abc",[{parts, 2}]))), <<"x:y">> = iolist_to_binary(join(re:split("xabcy","abc",[]))), <<"ab">> = iolist_to_binary(join(re:split("ababc","abc",[trim]))), <<"ab:">> = iolist_to_binary(join(re:split("ababc","abc",[{parts, 2}]))), <<"ab:">> = iolist_to_binary(join(re:split("ababc","abc",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc",[]))), <<"xbc">> = iolist_to_binary(join(re:split("xbc","abc",[trim]))), <<"xbc">> = iolist_to_binary(join(re:split("xbc","abc",[{parts, 2}]))), <<"xbc">> = iolist_to_binary(join(re:split("xbc","abc",[]))), <<"axc">> = iolist_to_binary(join(re:split("axc","abc",[trim]))), <<"axc">> = iolist_to_binary(join(re:split("axc","abc",[{parts, 2}]))), <<"axc">> = iolist_to_binary(join(re:split("axc","abc",[]))), <<"abx">> = iolist_to_binary(join(re:split("abx","abc",[trim]))), <<"abx">> = iolist_to_binary(join(re:split("abx","abc",[{parts, 2}]))), <<"abx">> = iolist_to_binary(join(re:split("abx","abc",[]))), <<"">> = iolist_to_binary(join(re:split("abc","ab*c",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","ab*c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","ab*c",[]))), <<"">> = iolist_to_binary(join(re:split("abc","ab*bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","ab*bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","ab*bc",[]))), <<"">> = iolist_to_binary(join(re:split("abbc","ab*bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbc","ab*bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbc","ab*bc",[]))), <<"">> = iolist_to_binary(join(re:split("abbbbc","ab*bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab*bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab*bc",[]))), <<"">> = iolist_to_binary(join(re:split("abbbbc",".{1}",[trim]))), <<":bbbbc">> = iolist_to_binary(join(re:split("abbbbc",".{1}",[{parts, 2}]))), <<"::::::">> = iolist_to_binary(join(re:split("abbbbc",".{1}",[]))), <<":bc">> = iolist_to_binary(join(re:split("abbbbc",".{3,4}",[trim]))), <<":bc">> = iolist_to_binary(join(re:split("abbbbc",".{3,4}",[{parts, 2}]))), <<":bc">> = iolist_to_binary(join(re:split("abbbbc",".{3,4}",[]))), <<"">> = iolist_to_binary(join(re:split("abbbbc","ab{0,}bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab{0,}bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab{0,}bc",[]))), <<"">> = iolist_to_binary(join(re:split("abbc","ab+bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbc","ab+bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbc","ab+bc",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab+bc",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab+bc",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab+bc",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","ab+bc",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","ab+bc",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","ab+bc",[]))), <<"abq">> = iolist_to_binary(join(re:split("abq","ab+bc",[trim]))), <<"abq">> = iolist_to_binary(join(re:split("abq","ab+bc",[{parts, 2}]))), <<"abq">> = iolist_to_binary(join(re:split("abq","ab+bc",[]))), ok. run15() -> <<"">> = iolist_to_binary(join(re:split("abbbbc","ab+bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab+bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab+bc",[]))), <<"">> = iolist_to_binary(join(re:split("abbbbc","ab{1,}bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab{1,}bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab{1,}bc",[]))), <<"">> = iolist_to_binary(join(re:split("abbbbc","ab{1,3}bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab{1,3}bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab{1,3}bc",[]))), <<"">> = iolist_to_binary(join(re:split("abbbbc","ab{3,4}bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab{3,4}bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbbbc","ab{3,4}bc",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab{4,5}bc",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab{4,5}bc",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab{4,5}bc",[]))), <<"abq">> = iolist_to_binary(join(re:split("abq","ab{4,5}bc",[trim]))), <<"abq">> = iolist_to_binary(join(re:split("abq","ab{4,5}bc",[{parts, 2}]))), <<"abq">> = iolist_to_binary(join(re:split("abq","ab{4,5}bc",[]))), <<"abbbbc">> = iolist_to_binary(join(re:split("abbbbc","ab{4,5}bc",[trim]))), <<"abbbbc">> = iolist_to_binary(join(re:split("abbbbc","ab{4,5}bc",[{parts, 2}]))), <<"abbbbc">> = iolist_to_binary(join(re:split("abbbbc","ab{4,5}bc",[]))), <<"">> = iolist_to_binary(join(re:split("abbc","ab?bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abbc","ab?bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abbc","ab?bc",[]))), <<"">> = iolist_to_binary(join(re:split("abc","ab?bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","ab?bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","ab?bc",[]))), <<"">> = iolist_to_binary(join(re:split("abc","ab{0,1}bc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","ab{0,1}bc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","ab{0,1}bc",[]))), <<"">> = iolist_to_binary(join(re:split("abc","ab?c",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","ab?c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","ab?c",[]))), <<"">> = iolist_to_binary(join(re:split("abc","ab{0,1}c",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","ab{0,1}c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","ab{0,1}c",[]))), <<"">> = iolist_to_binary(join(re:split("abc","^abc$",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","^abc$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","^abc$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^abc$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^abc$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^abc$",[]))), <<"abbbbc">> = iolist_to_binary(join(re:split("abbbbc","^abc$",[trim]))), <<"abbbbc">> = iolist_to_binary(join(re:split("abbbbc","^abc$",[{parts, 2}]))), <<"abbbbc">> = iolist_to_binary(join(re:split("abbbbc","^abc$",[]))), <<"abcc">> = iolist_to_binary(join(re:split("abcc","^abc$",[trim]))), <<"abcc">> = iolist_to_binary(join(re:split("abcc","^abc$",[{parts, 2}]))), <<"abcc">> = iolist_to_binary(join(re:split("abcc","^abc$",[]))), <<":c">> = iolist_to_binary(join(re:split("abcc","^abc",[trim]))), <<":c">> = iolist_to_binary(join(re:split("abcc","^abc",[{parts, 2}]))), <<":c">> = iolist_to_binary(join(re:split("abcc","^abc",[]))), <<"a">> = iolist_to_binary(join(re:split("aabc","abc$",[trim]))), <<"a:">> = iolist_to_binary(join(re:split("aabc","abc$",[{parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("aabc","abc$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc$",[]))), <<"a">> = iolist_to_binary(join(re:split("aabc","abc$",[trim]))), <<"a:">> = iolist_to_binary(join(re:split("aabc","abc$",[{parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("aabc","abc$",[]))), <<"aabcd">> = iolist_to_binary(join(re:split("aabcd","abc$",[trim]))), <<"aabcd">> = iolist_to_binary(join(re:split("aabcd","abc$",[{parts, 2}]))), <<"aabcd">> = iolist_to_binary(join(re:split("aabcd","abc$",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","$",[trim]))), <<"abc:">> = iolist_to_binary(join(re:split("abc","$",[{parts, 2}]))), <<"abc:">> = iolist_to_binary(join(re:split("abc","$",[]))), <<"">> = iolist_to_binary(join(re:split("abc","a.c",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","a.c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","a.c",[]))), <<"">> = iolist_to_binary(join(re:split("axc","a.c",[trim]))), <<":">> = iolist_to_binary(join(re:split("axc","a.c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("axc","a.c",[]))), <<"">> = iolist_to_binary(join(re:split("axyzc","a.*c",[trim]))), <<":">> = iolist_to_binary(join(re:split("axyzc","a.*c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("axyzc","a.*c",[]))), <<"">> = iolist_to_binary(join(re:split("abd","a[bc]d",[trim]))), <<":">> = iolist_to_binary(join(re:split("abd","a[bc]d",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abd","a[bc]d",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[bc]d",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[bc]d",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[bc]d",[]))), <<"axyzd">> = iolist_to_binary(join(re:split("axyzd","a[bc]d",[trim]))), <<"axyzd">> = iolist_to_binary(join(re:split("axyzd","a[bc]d",[{parts, 2}]))), <<"axyzd">> = iolist_to_binary(join(re:split("axyzd","a[bc]d",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","a[bc]d",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","a[bc]d",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","a[bc]d",[]))), <<"">> = iolist_to_binary(join(re:split("ace","a[b-d]e",[trim]))), <<":">> = iolist_to_binary(join(re:split("ace","a[b-d]e",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ace","a[b-d]e",[]))), ok. run16() -> <<"a">> = iolist_to_binary(join(re:split("aac","a[b-d]",[trim]))), <<"a:">> = iolist_to_binary(join(re:split("aac","a[b-d]",[{parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("aac","a[b-d]",[]))), <<"">> = iolist_to_binary(join(re:split("a-","a[-b]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a-","a[-b]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a-","a[-b]",[]))), <<"">> = iolist_to_binary(join(re:split("a-","a[b-]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a-","a[b-]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a-","a[b-]",[]))), <<"">> = iolist_to_binary(join(re:split("a]","a]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a]","a]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a]","a]",[]))), <<"">> = iolist_to_binary(join(re:split("a]b","a[]]b",[trim]))), <<":">> = iolist_to_binary(join(re:split("a]b","a[]]b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a]b","a[]]b",[]))), <<"">> = iolist_to_binary(join(re:split("aed","a[^bc]d",[trim]))), <<":">> = iolist_to_binary(join(re:split("aed","a[^bc]d",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aed","a[^bc]d",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[^bc]d",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[^bc]d",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[^bc]d",[]))), <<"abd">> = iolist_to_binary(join(re:split("abd","a[^bc]d",[trim]))), <<"abd">> = iolist_to_binary(join(re:split("abd","a[^bc]d",[{parts, 2}]))), <<"abd">> = iolist_to_binary(join(re:split("abd","a[^bc]d",[]))), <<"abd">> = iolist_to_binary(join(re:split("abd","a[^bc]d",[trim]))), <<"abd">> = iolist_to_binary(join(re:split("abd","a[^bc]d",[{parts, 2}]))), <<"abd">> = iolist_to_binary(join(re:split("abd","a[^bc]d",[]))), <<"">> = iolist_to_binary(join(re:split("adc","a[^-b]c",[trim]))), <<":">> = iolist_to_binary(join(re:split("adc","a[^-b]c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("adc","a[^-b]c",[]))), <<"">> = iolist_to_binary(join(re:split("adc","a[^]b]c",[trim]))), <<":">> = iolist_to_binary(join(re:split("adc","a[^]b]c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("adc","a[^]b]c",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[^]b]c",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[^]b]c",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[^]b]c",[]))), <<"">> = iolist_to_binary(join(re:split("a-c","a[^]b]c",[trim]))), <<":">> = iolist_to_binary(join(re:split("a-c","a[^]b]c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a-c","a[^]b]c",[]))), <<"a]c">> = iolist_to_binary(join(re:split("a]c","a[^]b]c",[trim]))), <<"a]c">> = iolist_to_binary(join(re:split("a]c","a[^]b]c",[{parts, 2}]))), <<"a]c">> = iolist_to_binary(join(re:split("a]c","a[^]b]c",[]))), <<":-">> = iolist_to_binary(join(re:split("a-","\\ba\\b",[trim]))), <<":-">> = iolist_to_binary(join(re:split("a-","\\ba\\b",[{parts, 2}]))), <<":-">> = iolist_to_binary(join(re:split("a-","\\ba\\b",[]))), <<"-">> = iolist_to_binary(join(re:split("-a","\\ba\\b",[trim]))), <<"-:">> = iolist_to_binary(join(re:split("-a","\\ba\\b",[{parts, 2}]))), <<"-:">> = iolist_to_binary(join(re:split("-a","\\ba\\b",[]))), <<"-:-">> = iolist_to_binary(join(re:split("-a-","\\ba\\b",[trim]))), <<"-:-">> = iolist_to_binary(join(re:split("-a-","\\ba\\b",[{parts, 2}]))), <<"-:-">> = iolist_to_binary(join(re:split("-a-","\\ba\\b",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\by\\b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\by\\b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\by\\b",[]))), <<"xy">> = iolist_to_binary(join(re:split("xy","\\by\\b",[trim]))), <<"xy">> = iolist_to_binary(join(re:split("xy","\\by\\b",[{parts, 2}]))), <<"xy">> = iolist_to_binary(join(re:split("xy","\\by\\b",[]))), <<"yz">> = iolist_to_binary(join(re:split("yz","\\by\\b",[trim]))), <<"yz">> = iolist_to_binary(join(re:split("yz","\\by\\b",[{parts, 2}]))), <<"yz">> = iolist_to_binary(join(re:split("yz","\\by\\b",[]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","\\by\\b",[trim]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","\\by\\b",[{parts, 2}]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","\\by\\b",[]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","\\Ba\\B",[trim]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","\\Ba\\B",[{parts, 2}]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","\\Ba\\B",[]))), <<"a-">> = iolist_to_binary(join(re:split("a-","\\Ba\\B",[trim]))), <<"a-">> = iolist_to_binary(join(re:split("a-","\\Ba\\B",[{parts, 2}]))), <<"a-">> = iolist_to_binary(join(re:split("a-","\\Ba\\B",[]))), <<"-a">> = iolist_to_binary(join(re:split("-a","\\Ba\\B",[trim]))), <<"-a">> = iolist_to_binary(join(re:split("-a","\\Ba\\B",[{parts, 2}]))), <<"-a">> = iolist_to_binary(join(re:split("-a","\\Ba\\B",[]))), <<"-a-">> = iolist_to_binary(join(re:split("-a-","\\Ba\\B",[trim]))), <<"-a-">> = iolist_to_binary(join(re:split("-a-","\\Ba\\B",[{parts, 2}]))), <<"-a-">> = iolist_to_binary(join(re:split("-a-","\\Ba\\B",[]))), <<"x">> = iolist_to_binary(join(re:split("xy","\\By\\b",[trim]))), <<"x:">> = iolist_to_binary(join(re:split("xy","\\By\\b",[{parts, 2}]))), <<"x:">> = iolist_to_binary(join(re:split("xy","\\By\\b",[]))), <<":z">> = iolist_to_binary(join(re:split("yz","\\by\\B",[trim]))), <<":z">> = iolist_to_binary(join(re:split("yz","\\by\\B",[{parts, 2}]))), <<":z">> = iolist_to_binary(join(re:split("yz","\\by\\B",[]))), <<"x:z">> = iolist_to_binary(join(re:split("xyz","\\By\\B",[trim]))), <<"x:z">> = iolist_to_binary(join(re:split("xyz","\\By\\B",[{parts, 2}]))), <<"x:z">> = iolist_to_binary(join(re:split("xyz","\\By\\B",[]))), <<"">> = iolist_to_binary(join(re:split("a","\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","\\w",[]))), <<"">> = iolist_to_binary(join(re:split("-","\\W",[trim]))), <<":">> = iolist_to_binary(join(re:split("-","\\W",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("-","\\W",[]))), <<"::::Failers">> = iolist_to_binary(join(re:split("*** Failers","\\W",[trim]))), <<":** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\W",[{parts, 2}]))), <<"::::Failers">> = iolist_to_binary(join(re:split("*** Failers","\\W",[]))), <<"">> = iolist_to_binary(join(re:split("-","\\W",[trim]))), <<":">> = iolist_to_binary(join(re:split("-","\\W",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("-","\\W",[]))), <<"a">> = iolist_to_binary(join(re:split("a","\\W",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","\\W",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","\\W",[]))), <<"">> = iolist_to_binary(join(re:split("a b","a\\sb",[trim]))), <<":">> = iolist_to_binary(join(re:split("a b","a\\sb",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a b","a\\sb",[]))), <<"">> = iolist_to_binary(join(re:split("a-b","a\\Sb",[trim]))), <<":">> = iolist_to_binary(join(re:split("a-b","a\\Sb",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a-b","a\\Sb",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a\\Sb",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a\\Sb",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a\\Sb",[]))), <<"">> = iolist_to_binary(join(re:split("a-b","a\\Sb",[trim]))), <<":">> = iolist_to_binary(join(re:split("a-b","a\\Sb",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a-b","a\\Sb",[]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a\\Sb",[trim]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a\\Sb",[{parts, 2}]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a\\Sb",[]))), <<"">> = iolist_to_binary(join(re:split("1","\\d",[trim]))), <<":">> = iolist_to_binary(join(re:split("1","\\d",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("1","\\d",[]))), <<"">> = iolist_to_binary(join(re:split("-","\\D",[trim]))), <<":">> = iolist_to_binary(join(re:split("-","\\D",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("-","\\D",[]))), <<"">> = iolist_to_binary(join(re:split("*** Failers","\\D",[trim]))), <<":** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\D",[{parts, 2}]))), <<":::::::::::">> = iolist_to_binary(join(re:split("*** Failers","\\D",[]))), <<"">> = iolist_to_binary(join(re:split("-","\\D",[trim]))), <<":">> = iolist_to_binary(join(re:split("-","\\D",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("-","\\D",[]))), <<"1">> = iolist_to_binary(join(re:split("1","\\D",[trim]))), <<"1">> = iolist_to_binary(join(re:split("1","\\D",[{parts, 2}]))), <<"1">> = iolist_to_binary(join(re:split("1","\\D",[]))), ok. run17() -> <<"">> = iolist_to_binary(join(re:split("a","[\\w]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","[\\w]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","[\\w]",[]))), <<"">> = iolist_to_binary(join(re:split("-","[\\W]",[trim]))), <<":">> = iolist_to_binary(join(re:split("-","[\\W]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("-","[\\W]",[]))), <<"::::Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\W]",[trim]))), <<":** Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\W]",[{parts, 2}]))), <<"::::Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\W]",[]))), <<"">> = iolist_to_binary(join(re:split("-","[\\W]",[trim]))), <<":">> = iolist_to_binary(join(re:split("-","[\\W]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("-","[\\W]",[]))), <<"a">> = iolist_to_binary(join(re:split("a","[\\W]",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","[\\W]",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","[\\W]",[]))), <<"">> = iolist_to_binary(join(re:split("a b","a[\\s]b",[trim]))), <<":">> = iolist_to_binary(join(re:split("a b","a[\\s]b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a b","a[\\s]b",[]))), <<"">> = iolist_to_binary(join(re:split("a-b","a[\\S]b",[trim]))), <<":">> = iolist_to_binary(join(re:split("a-b","a[\\S]b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a-b","a[\\S]b",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[\\S]b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[\\S]b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[\\S]b",[]))), <<"">> = iolist_to_binary(join(re:split("a-b","a[\\S]b",[trim]))), <<":">> = iolist_to_binary(join(re:split("a-b","a[\\S]b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a-b","a[\\S]b",[]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a[\\S]b",[trim]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a[\\S]b",[{parts, 2}]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a[\\S]b",[]))), <<"">> = iolist_to_binary(join(re:split("1","[\\d]",[trim]))), <<":">> = iolist_to_binary(join(re:split("1","[\\d]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("1","[\\d]",[]))), <<"">> = iolist_to_binary(join(re:split("-","[\\D]",[trim]))), <<":">> = iolist_to_binary(join(re:split("-","[\\D]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("-","[\\D]",[]))), <<"">> = iolist_to_binary(join(re:split("*** Failers","[\\D]",[trim]))), <<":** Failers">> = iolist_to_binary(join(re:split("*** Failers","[\\D]",[{parts, 2}]))), <<":::::::::::">> = iolist_to_binary(join(re:split("*** Failers","[\\D]",[]))), <<"">> = iolist_to_binary(join(re:split("-","[\\D]",[trim]))), <<":">> = iolist_to_binary(join(re:split("-","[\\D]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("-","[\\D]",[]))), <<"1">> = iolist_to_binary(join(re:split("1","[\\D]",[trim]))), <<"1">> = iolist_to_binary(join(re:split("1","[\\D]",[{parts, 2}]))), <<"1">> = iolist_to_binary(join(re:split("1","[\\D]",[]))), <<":c">> = iolist_to_binary(join(re:split("abc","ab|cd",[trim]))), <<":c">> = iolist_to_binary(join(re:split("abc","ab|cd",[{parts, 2}]))), <<":c">> = iolist_to_binary(join(re:split("abc","ab|cd",[]))), <<"">> = iolist_to_binary(join(re:split("abcd","ab|cd",[trim]))), <<":cd">> = iolist_to_binary(join(re:split("abcd","ab|cd",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("abcd","ab|cd",[]))), <<"d">> = iolist_to_binary(join(re:split("def","()ef",[trim]))), <<"d::">> = iolist_to_binary(join(re:split("def","()ef",[{parts, 2}]))), <<"d::">> = iolist_to_binary(join(re:split("def","()ef",[]))), <<"">> = iolist_to_binary(join(re:split("a(b","a\\(b",[trim]))), <<":">> = iolist_to_binary(join(re:split("a(b","a\\(b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a(b","a\\(b",[]))), <<"">> = iolist_to_binary(join(re:split("ab","a\\(*b",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab","a\\(*b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab","a\\(*b",[]))), <<"">> = iolist_to_binary(join(re:split("a((b","a\\(*b",[trim]))), <<":">> = iolist_to_binary(join(re:split("a((b","a\\(*b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a((b","a\\(*b",[]))), <<"a">> = iolist_to_binary(join(re:split("a","a\\\\b",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","a\\\\b",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","a\\\\b",[]))), <<":a:a:bc">> = iolist_to_binary(join(re:split("abc","((a))",[trim]))), <<":a:a:bc">> = iolist_to_binary(join(re:split("abc","((a))",[{parts, 2}]))), <<":a:a:bc">> = iolist_to_binary(join(re:split("abc","((a))",[]))), <<":a:c">> = iolist_to_binary(join(re:split("abc","(a)b(c)",[trim]))), <<":a:c:">> = iolist_to_binary(join(re:split("abc","(a)b(c)",[{parts, 2}]))), <<":a:c:">> = iolist_to_binary(join(re:split("abc","(a)b(c)",[]))), <<"aabb">> = iolist_to_binary(join(re:split("aabbabc","a+b+c",[trim]))), <<"aabb:">> = iolist_to_binary(join(re:split("aabbabc","a+b+c",[{parts, 2}]))), <<"aabb:">> = iolist_to_binary(join(re:split("aabbabc","a+b+c",[]))), <<"aabb">> = iolist_to_binary(join(re:split("aabbabc","a{1,}b{1,}c",[trim]))), <<"aabb:">> = iolist_to_binary(join(re:split("aabbabc","a{1,}b{1,}c",[{parts, 2}]))), <<"aabb:">> = iolist_to_binary(join(re:split("aabbabc","a{1,}b{1,}c",[]))), <<"">> = iolist_to_binary(join(re:split("abcabc","a.+?c",[trim]))), <<":abc">> = iolist_to_binary(join(re:split("abcabc","a.+?c",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("abcabc","a.+?c",[]))), <<":b">> = iolist_to_binary(join(re:split("ab","(a+|b)*",[trim]))), <<":b:">> = iolist_to_binary(join(re:split("ab","(a+|b)*",[{parts, 2}]))), <<":b:">> = iolist_to_binary(join(re:split("ab","(a+|b)*",[]))), <<":b">> = iolist_to_binary(join(re:split("ab","(a+|b){0,}",[trim]))), <<":b:">> = iolist_to_binary(join(re:split("ab","(a+|b){0,}",[{parts, 2}]))), <<":b:">> = iolist_to_binary(join(re:split("ab","(a+|b){0,}",[]))), <<":b">> = iolist_to_binary(join(re:split("ab","(a+|b)+",[trim]))), <<":b:">> = iolist_to_binary(join(re:split("ab","(a+|b)+",[{parts, 2}]))), <<":b:">> = iolist_to_binary(join(re:split("ab","(a+|b)+",[]))), ok. run18() -> <<":b">> = iolist_to_binary(join(re:split("ab","(a+|b){1,}",[trim]))), <<":b:">> = iolist_to_binary(join(re:split("ab","(a+|b){1,}",[{parts, 2}]))), <<":b:">> = iolist_to_binary(join(re:split("ab","(a+|b){1,}",[]))), <<":a::b">> = iolist_to_binary(join(re:split("ab","(a+|b)?",[trim]))), <<":a:b">> = iolist_to_binary(join(re:split("ab","(a+|b)?",[{parts, 2}]))), <<":a::b:">> = iolist_to_binary(join(re:split("ab","(a+|b)?",[]))), <<":a::b">> = iolist_to_binary(join(re:split("ab","(a+|b){0,1}",[trim]))), <<":a:b">> = iolist_to_binary(join(re:split("ab","(a+|b){0,1}",[{parts, 2}]))), <<":a::b:">> = iolist_to_binary(join(re:split("ab","(a+|b){0,1}",[]))), <<"">> = iolist_to_binary(join(re:split("cde","[^ab]*",[trim]))), <<":">> = iolist_to_binary(join(re:split("cde","[^ab]*",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("cde","[^ab]*",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc",[]))), <<"b">> = iolist_to_binary(join(re:split("b","abc",[trim]))), <<"b">> = iolist_to_binary(join(re:split("b","abc",[{parts, 2}]))), <<"b">> = iolist_to_binary(join(re:split("b","abc",[]))), <<":c">> = iolist_to_binary(join(re:split("abbbcd","([abc])*d",[trim]))), <<":c:">> = iolist_to_binary(join(re:split("abbbcd","([abc])*d",[{parts, 2}]))), <<":c:">> = iolist_to_binary(join(re:split("abbbcd","([abc])*d",[]))), <<":a">> = iolist_to_binary(join(re:split("abcd","([abc])*bcd",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("abcd","([abc])*bcd",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("abcd","([abc])*bcd",[]))), <<"">> = iolist_to_binary(join(re:split("e","a|b|c|d|e",[trim]))), <<":">> = iolist_to_binary(join(re:split("e","a|b|c|d|e",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("e","a|b|c|d|e",[]))), <<":e">> = iolist_to_binary(join(re:split("ef","(a|b|c|d|e)f",[trim]))), <<":e:">> = iolist_to_binary(join(re:split("ef","(a|b|c|d|e)f",[{parts, 2}]))), <<":e:">> = iolist_to_binary(join(re:split("ef","(a|b|c|d|e)f",[]))), <<"">> = iolist_to_binary(join(re:split("abcdefg","abcd*efg",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcdefg","abcd*efg",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcdefg","abcd*efg",[]))), <<"x:y:z">> = iolist_to_binary(join(re:split("xabyabbbz","ab*",[trim]))), <<"x:yabbbz">> = iolist_to_binary(join(re:split("xabyabbbz","ab*",[{parts, 2}]))), <<"x:y:z">> = iolist_to_binary(join(re:split("xabyabbbz","ab*",[]))), <<"x:y:z">> = iolist_to_binary(join(re:split("xayabbbz","ab*",[trim]))), <<"x:yabbbz">> = iolist_to_binary(join(re:split("xayabbbz","ab*",[{parts, 2}]))), <<"x:y:z">> = iolist_to_binary(join(re:split("xayabbbz","ab*",[]))), <<"ab:cd">> = iolist_to_binary(join(re:split("abcde","(ab|cd)e",[trim]))), <<"ab:cd:">> = iolist_to_binary(join(re:split("abcde","(ab|cd)e",[{parts, 2}]))), <<"ab:cd:">> = iolist_to_binary(join(re:split("abcde","(ab|cd)e",[]))), <<"">> = iolist_to_binary(join(re:split("hij","[abhgefdc]ij",[trim]))), <<":">> = iolist_to_binary(join(re:split("hij","[abhgefdc]ij",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("hij","[abhgefdc]ij",[]))), <<"abcd">> = iolist_to_binary(join(re:split("abcdef","(abc|)ef",[trim]))), <<"abcd::">> = iolist_to_binary(join(re:split("abcdef","(abc|)ef",[{parts, 2}]))), <<"abcd::">> = iolist_to_binary(join(re:split("abcdef","(abc|)ef",[]))), <<"a:b">> = iolist_to_binary(join(re:split("abcd","(a|b)c*d",[trim]))), <<"a:b:">> = iolist_to_binary(join(re:split("abcd","(a|b)c*d",[{parts, 2}]))), <<"a:b:">> = iolist_to_binary(join(re:split("abcd","(a|b)c*d",[]))), <<":a">> = iolist_to_binary(join(re:split("abc","(ab|ab*)bc",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("abc","(ab|ab*)bc",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("abc","(ab|ab*)bc",[]))), <<":bc">> = iolist_to_binary(join(re:split("abc","a([bc]*)c*",[trim]))), <<":bc:">> = iolist_to_binary(join(re:split("abc","a([bc]*)c*",[{parts, 2}]))), <<":bc:">> = iolist_to_binary(join(re:split("abc","a([bc]*)c*",[]))), <<":bc:d">> = iolist_to_binary(join(re:split("abcd","a([bc]*)(c*d)",[trim]))), <<":bc:d:">> = iolist_to_binary(join(re:split("abcd","a([bc]*)(c*d)",[{parts, 2}]))), <<":bc:d:">> = iolist_to_binary(join(re:split("abcd","a([bc]*)(c*d)",[]))), ok. run19() -> <<":bc:d">> = iolist_to_binary(join(re:split("abcd","a([bc]+)(c*d)",[trim]))), <<":bc:d:">> = iolist_to_binary(join(re:split("abcd","a([bc]+)(c*d)",[{parts, 2}]))), <<":bc:d:">> = iolist_to_binary(join(re:split("abcd","a([bc]+)(c*d)",[]))), <<":b:cd">> = iolist_to_binary(join(re:split("abcd","a([bc]*)(c+d)",[trim]))), <<":b:cd:">> = iolist_to_binary(join(re:split("abcd","a([bc]*)(c+d)",[{parts, 2}]))), <<":b:cd:">> = iolist_to_binary(join(re:split("abcd","a([bc]*)(c+d)",[]))), <<"">> = iolist_to_binary(join(re:split("adcdcde","a[bcd]*dcdcde",[trim]))), <<":">> = iolist_to_binary(join(re:split("adcdcde","a[bcd]*dcdcde",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("adcdcde","a[bcd]*dcdcde",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[bcd]+dcdcde",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[bcd]+dcdcde",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[bcd]+dcdcde",[]))), <<"abcde">> = iolist_to_binary(join(re:split("abcde","a[bcd]+dcdcde",[trim]))), <<"abcde">> = iolist_to_binary(join(re:split("abcde","a[bcd]+dcdcde",[{parts, 2}]))), <<"abcde">> = iolist_to_binary(join(re:split("abcde","a[bcd]+dcdcde",[]))), <<"adcdcde">> = iolist_to_binary(join(re:split("adcdcde","a[bcd]+dcdcde",[trim]))), <<"adcdcde">> = iolist_to_binary(join(re:split("adcdcde","a[bcd]+dcdcde",[{parts, 2}]))), <<"adcdcde">> = iolist_to_binary(join(re:split("adcdcde","a[bcd]+dcdcde",[]))), <<":ab">> = iolist_to_binary(join(re:split("abc","(ab|a)b*c",[trim]))), <<":ab:">> = iolist_to_binary(join(re:split("abc","(ab|a)b*c",[{parts, 2}]))), <<":ab:">> = iolist_to_binary(join(re:split("abc","(ab|a)b*c",[]))), <<":abc:a:b:d">> = iolist_to_binary(join(re:split("abcd","((a)(b)c)(d)",[trim]))), <<":abc:a:b:d:">> = iolist_to_binary(join(re:split("abcd","((a)(b)c)(d)",[{parts, 2}]))), <<":abc:a:b:d:">> = iolist_to_binary(join(re:split("abcd","((a)(b)c)(d)",[]))), <<"">> = iolist_to_binary(join(re:split("alpha","[a-zA-Z_][a-zA-Z0-9_]*",[trim]))), <<":">> = iolist_to_binary(join(re:split("alpha","[a-zA-Z_][a-zA-Z0-9_]*",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("alpha","[a-zA-Z_][a-zA-Z0-9_]*",[]))), <<"a">> = iolist_to_binary(join(re:split("abh","^a(bc+|b[eh])g|.h$",[trim]))), <<"a::">> = iolist_to_binary(join(re:split("abh","^a(bc+|b[eh])g|.h$",[{parts, 2}]))), <<"a::">> = iolist_to_binary(join(re:split("abh","^a(bc+|b[eh])g|.h$",[]))), <<":effgz">> = iolist_to_binary(join(re:split("effgz","(bc+d$|ef*g.|h?i(j|k))",[trim]))), <<":effgz::">> = iolist_to_binary(join(re:split("effgz","(bc+d$|ef*g.|h?i(j|k))",[{parts, 2}]))), <<":effgz::">> = iolist_to_binary(join(re:split("effgz","(bc+d$|ef*g.|h?i(j|k))",[]))), <<":ij:j">> = iolist_to_binary(join(re:split("ij","(bc+d$|ef*g.|h?i(j|k))",[trim]))), <<":ij:j:">> = iolist_to_binary(join(re:split("ij","(bc+d$|ef*g.|h?i(j|k))",[{parts, 2}]))), <<":ij:j:">> = iolist_to_binary(join(re:split("ij","(bc+d$|ef*g.|h?i(j|k))",[]))), <<"r:effgz">> = iolist_to_binary(join(re:split("reffgz","(bc+d$|ef*g.|h?i(j|k))",[trim]))), <<"r:effgz::">> = iolist_to_binary(join(re:split("reffgz","(bc+d$|ef*g.|h?i(j|k))",[{parts, 2}]))), <<"r:effgz::">> = iolist_to_binary(join(re:split("reffgz","(bc+d$|ef*g.|h?i(j|k))",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(bc+d$|ef*g.|h?i(j|k))",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(bc+d$|ef*g.|h?i(j|k))",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(bc+d$|ef*g.|h?i(j|k))",[]))), <<"effg">> = iolist_to_binary(join(re:split("effg","(bc+d$|ef*g.|h?i(j|k))",[trim]))), <<"effg">> = iolist_to_binary(join(re:split("effg","(bc+d$|ef*g.|h?i(j|k))",[{parts, 2}]))), <<"effg">> = iolist_to_binary(join(re:split("effg","(bc+d$|ef*g.|h?i(j|k))",[]))), <<"bcdd">> = iolist_to_binary(join(re:split("bcdd","(bc+d$|ef*g.|h?i(j|k))",[trim]))), <<"bcdd">> = iolist_to_binary(join(re:split("bcdd","(bc+d$|ef*g.|h?i(j|k))",[{parts, 2}]))), <<"bcdd">> = iolist_to_binary(join(re:split("bcdd","(bc+d$|ef*g.|h?i(j|k))",[]))), <<":a:a:a:a:a:a:a:a:a:a">> = iolist_to_binary(join(re:split("a","((((((((((a))))))))))",[trim]))), <<":a:a:a:a:a:a:a:a:a:a:">> = iolist_to_binary(join(re:split("a","((((((((((a))))))))))",[{parts, 2}]))), <<":a:a:a:a:a:a:a:a:a:a:">> = iolist_to_binary(join(re:split("a","((((((((((a))))))))))",[]))), <<":a:a:a:a:a:a:a:a:a:a">> = iolist_to_binary(join(re:split("aa","((((((((((a))))))))))\\10",[trim]))), <<":a:a:a:a:a:a:a:a:a:a:">> = iolist_to_binary(join(re:split("aa","((((((((((a))))))))))\\10",[{parts, 2}]))), <<":a:a:a:a:a:a:a:a:a:a:">> = iolist_to_binary(join(re:split("aa","((((((((((a))))))))))\\10",[]))), <<":a:a:a:a:a:a:a:a:a">> = iolist_to_binary(join(re:split("a","(((((((((a)))))))))",[trim]))), <<":a:a:a:a:a:a:a:a:a:">> = iolist_to_binary(join(re:split("a","(((((((((a)))))))))",[{parts, 2}]))), <<":a:a:a:a:a:a:a:a:a:">> = iolist_to_binary(join(re:split("a","(((((((((a)))))))))",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","multiple words of text",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","multiple words of text",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","multiple words of text",[]))), <<"aa">> = iolist_to_binary(join(re:split("aa","multiple words of text",[trim]))), <<"aa">> = iolist_to_binary(join(re:split("aa","multiple words of text",[{parts, 2}]))), <<"aa">> = iolist_to_binary(join(re:split("aa","multiple words of text",[]))), <<"uh-uh">> = iolist_to_binary(join(re:split("uh-uh","multiple words of text",[trim]))), <<"uh-uh">> = iolist_to_binary(join(re:split("uh-uh","multiple words of text",[{parts, 2}]))), <<"uh-uh">> = iolist_to_binary(join(re:split("uh-uh","multiple words of text",[]))), <<":, yeah">> = iolist_to_binary(join(re:split("multiple words, yeah","multiple words",[trim]))), <<":, yeah">> = iolist_to_binary(join(re:split("multiple words, yeah","multiple words",[{parts, 2}]))), <<":, yeah">> = iolist_to_binary(join(re:split("multiple words, yeah","multiple words",[]))), <<":ab:de">> = iolist_to_binary(join(re:split("abcde","(.*)c(.*)",[trim]))), <<":ab:de:">> = iolist_to_binary(join(re:split("abcde","(.*)c(.*)",[{parts, 2}]))), <<":ab:de:">> = iolist_to_binary(join(re:split("abcde","(.*)c(.*)",[]))), <<":a:b">> = iolist_to_binary(join(re:split("(a, b)","\\((.*), (.*)\\)",[trim]))), <<":a:b:">> = iolist_to_binary(join(re:split("(a, b)","\\((.*), (.*)\\)",[{parts, 2}]))), <<":a:b:">> = iolist_to_binary(join(re:split("(a, b)","\\((.*), (.*)\\)",[]))), <<"">> = iolist_to_binary(join(re:split("abcd","abcd",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcd","abcd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcd","abcd",[]))), <<":bc">> = iolist_to_binary(join(re:split("abcd","a(bc)d",[trim]))), <<":bc:">> = iolist_to_binary(join(re:split("abcd","a(bc)d",[{parts, 2}]))), <<":bc:">> = iolist_to_binary(join(re:split("abcd","a(bc)d",[]))), <<"">> = iolist_to_binary(join(re:split("ac","a[-]?c",[trim]))), <<":">> = iolist_to_binary(join(re:split("ac","a[-]?c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ac","a[-]?c",[]))), ok. run20() -> <<":abc">> = iolist_to_binary(join(re:split("abcabc","(abc)\\1",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","(abc)\\1",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","(abc)\\1",[]))), <<":abc">> = iolist_to_binary(join(re:split("abcabc","([a-c]*)\\1",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","([a-c]*)\\1",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","([a-c]*)\\1",[]))), <<":a">> = iolist_to_binary(join(re:split("a","(a)|\\1",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("a","(a)|\\1",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("a","(a)|\\1",[]))), <<"*** F:a:ilers">> = iolist_to_binary(join(re:split("*** Failers","(a)|\\1",[trim]))), <<"*** F:a:ilers">> = iolist_to_binary(join(re:split("*** Failers","(a)|\\1",[{parts, 2}]))), <<"*** F:a:ilers">> = iolist_to_binary(join(re:split("*** Failers","(a)|\\1",[]))), <<":a:b">> = iolist_to_binary(join(re:split("ab","(a)|\\1",[trim]))), <<":a:b">> = iolist_to_binary(join(re:split("ab","(a)|\\1",[{parts, 2}]))), <<":a:b">> = iolist_to_binary(join(re:split("ab","(a)|\\1",[]))), <<"x">> = iolist_to_binary(join(re:split("x","(a)|\\1",[trim]))), <<"x">> = iolist_to_binary(join(re:split("x","(a)|\\1",[{parts, 2}]))), <<"x">> = iolist_to_binary(join(re:split("x","(a)|\\1",[]))), <<":bb:b:b:cbc:c">> = iolist_to_binary(join(re:split("ababbbcbc","(([a-c])b*?\\2)*",[trim]))), <<":bb:b:bcbc">> = iolist_to_binary(join(re:split("ababbbcbc","(([a-c])b*?\\2)*",[{parts, 2}]))), <<":bb:b:b:cbc:c:">> = iolist_to_binary(join(re:split("ababbbcbc","(([a-c])b*?\\2)*",[]))), <<":cbc:c">> = iolist_to_binary(join(re:split("ababbbcbc","(([a-c])b*?\\2){3}",[trim]))), <<":cbc:c:">> = iolist_to_binary(join(re:split("ababbbcbc","(([a-c])b*?\\2){3}",[{parts, 2}]))), <<":cbc:c:">> = iolist_to_binary(join(re:split("ababbbcbc","(([a-c])b*?\\2){3}",[]))), <<"aaaxabaxbaax:bbax:b:a">> = iolist_to_binary(join(re:split("aaaxabaxbaaxbbax","((\\3|b)\\2(a)x)+",[trim]))), <<"aaaxabaxbaax:bbax:b:a:">> = iolist_to_binary(join(re:split("aaaxabaxbaaxbbax","((\\3|b)\\2(a)x)+",[{parts, 2}]))), <<"aaaxabaxbaax:bbax:b:a:">> = iolist_to_binary(join(re:split("aaaxabaxbaaxbbax","((\\3|b)\\2(a)x)+",[]))), <<"bbaababbabaaaaa:bba:b:a">> = iolist_to_binary(join(re:split("bbaababbabaaaaabbaaaabba","((\\3|b)\\2(a)){2,}",[trim]))), <<"bbaababbabaaaaa:bba:b:a:">> = iolist_to_binary(join(re:split("bbaababbabaaaaabbaaaabba","((\\3|b)\\2(a)){2,}",[{parts, 2}]))), <<"bbaababbabaaaaa:bba:b:a:">> = iolist_to_binary(join(re:split("bbaababbabaaaaabbaaaabba","((\\3|b)\\2(a)){2,}",[]))), <<"">> = iolist_to_binary(join(re:split("ABC","abc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABC","abc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABC","abc",[caseless]))), <<"X:Y">> = iolist_to_binary(join(re:split("XABCY","abc",[caseless, trim]))), <<"X:Y">> = iolist_to_binary(join(re:split("XABCY","abc",[caseless, {parts, 2}]))), <<"X:Y">> = iolist_to_binary(join(re:split("XABCY","abc",[caseless]))), <<"AB">> = iolist_to_binary(join(re:split("ABABC","abc",[caseless, trim]))), <<"AB:">> = iolist_to_binary(join(re:split("ABABC","abc",[caseless, {parts, 2}]))), <<"AB:">> = iolist_to_binary(join(re:split("ABABC","abc",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","abc",[caseless]))), <<"aaxabxbaxbbx">> = iolist_to_binary(join(re:split("aaxabxbaxbbx","abc",[caseless, trim]))), <<"aaxabxbaxbbx">> = iolist_to_binary(join(re:split("aaxabxbaxbbx","abc",[caseless, {parts, 2}]))), <<"aaxabxbaxbbx">> = iolist_to_binary(join(re:split("aaxabxbaxbbx","abc",[caseless]))), <<"XBC">> = iolist_to_binary(join(re:split("XBC","abc",[caseless, trim]))), <<"XBC">> = iolist_to_binary(join(re:split("XBC","abc",[caseless, {parts, 2}]))), <<"XBC">> = iolist_to_binary(join(re:split("XBC","abc",[caseless]))), <<"AXC">> = iolist_to_binary(join(re:split("AXC","abc",[caseless, trim]))), <<"AXC">> = iolist_to_binary(join(re:split("AXC","abc",[caseless, {parts, 2}]))), <<"AXC">> = iolist_to_binary(join(re:split("AXC","abc",[caseless]))), <<"ABX">> = iolist_to_binary(join(re:split("ABX","abc",[caseless, trim]))), <<"ABX">> = iolist_to_binary(join(re:split("ABX","abc",[caseless, {parts, 2}]))), <<"ABX">> = iolist_to_binary(join(re:split("ABX","abc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABC","ab*c",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab*c",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab*c",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABC","ab*bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab*bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab*bc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABBC","ab*bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABBC","ab*bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABBC","ab*bc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABBBBC","ab*?bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab*?bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab*?bc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABBBBC","ab{0,}?bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab{0,}?bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab{0,}?bc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABBC","ab+?bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABBC","ab+?bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABBC","ab+?bc",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab+bc",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab+bc",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab+bc",[caseless]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","ab+bc",[caseless, trim]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","ab+bc",[caseless, {parts, 2}]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","ab+bc",[caseless]))), <<"ABQ">> = iolist_to_binary(join(re:split("ABQ","ab+bc",[caseless, trim]))), <<"ABQ">> = iolist_to_binary(join(re:split("ABQ","ab+bc",[caseless, {parts, 2}]))), <<"ABQ">> = iolist_to_binary(join(re:split("ABQ","ab+bc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABBBBC","ab+bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab+bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab+bc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABBBBC","ab{1,}?bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab{1,}?bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab{1,}?bc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABBBBC","ab{1,3}?bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab{1,3}?bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab{1,3}?bc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABBBBC","ab{3,4}?bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab{3,4}?bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABBBBC","ab{3,4}?bc",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab{4,5}?bc",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab{4,5}?bc",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","ab{4,5}?bc",[caseless]))), <<"ABQ">> = iolist_to_binary(join(re:split("ABQ","ab{4,5}?bc",[caseless, trim]))), <<"ABQ">> = iolist_to_binary(join(re:split("ABQ","ab{4,5}?bc",[caseless, {parts, 2}]))), <<"ABQ">> = iolist_to_binary(join(re:split("ABQ","ab{4,5}?bc",[caseless]))), <<"ABBBBC">> = iolist_to_binary(join(re:split("ABBBBC","ab{4,5}?bc",[caseless, trim]))), <<"ABBBBC">> = iolist_to_binary(join(re:split("ABBBBC","ab{4,5}?bc",[caseless, {parts, 2}]))), <<"ABBBBC">> = iolist_to_binary(join(re:split("ABBBBC","ab{4,5}?bc",[caseless]))), ok. run21() -> <<"">> = iolist_to_binary(join(re:split("ABBC","ab??bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABBC","ab??bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABBC","ab??bc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABC","ab??bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab??bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab??bc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABC","ab{0,1}?bc",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab{0,1}?bc",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab{0,1}?bc",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABC","ab??c",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab??c",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab??c",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABC","ab{0,1}?c",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab{0,1}?c",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABC","ab{0,1}?c",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABC","^abc$",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABC","^abc$",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABC","^abc$",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^abc$",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^abc$",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^abc$",[caseless]))), <<"ABBBBC">> = iolist_to_binary(join(re:split("ABBBBC","^abc$",[caseless, trim]))), <<"ABBBBC">> = iolist_to_binary(join(re:split("ABBBBC","^abc$",[caseless, {parts, 2}]))), <<"ABBBBC">> = iolist_to_binary(join(re:split("ABBBBC","^abc$",[caseless]))), <<"ABCC">> = iolist_to_binary(join(re:split("ABCC","^abc$",[caseless, trim]))), <<"ABCC">> = iolist_to_binary(join(re:split("ABCC","^abc$",[caseless, {parts, 2}]))), <<"ABCC">> = iolist_to_binary(join(re:split("ABCC","^abc$",[caseless]))), <<":C">> = iolist_to_binary(join(re:split("ABCC","^abc",[caseless, trim]))), <<":C">> = iolist_to_binary(join(re:split("ABCC","^abc",[caseless, {parts, 2}]))), <<":C">> = iolist_to_binary(join(re:split("ABCC","^abc",[caseless]))), <<"A">> = iolist_to_binary(join(re:split("AABC","abc$",[caseless, trim]))), <<"A:">> = iolist_to_binary(join(re:split("AABC","abc$",[caseless, {parts, 2}]))), <<"A:">> = iolist_to_binary(join(re:split("AABC","abc$",[caseless]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","^",[caseless, trim]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","^",[caseless, {parts, 2}]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","^",[caseless]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","$",[caseless, trim]))), <<"ABC:">> = iolist_to_binary(join(re:split("ABC","$",[caseless, {parts, 2}]))), <<"ABC:">> = iolist_to_binary(join(re:split("ABC","$",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABC","a.c",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABC","a.c",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABC","a.c",[caseless]))), <<"">> = iolist_to_binary(join(re:split("AXC","a.c",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("AXC","a.c",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("AXC","a.c",[caseless]))), <<"">> = iolist_to_binary(join(re:split("AXYZC","a.*?c",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("AXYZC","a.*?c",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("AXYZC","a.*?c",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a.*c",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a.*c",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a.*c",[caseless]))), <<"">> = iolist_to_binary(join(re:split("AABC","a.*c",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("AABC","a.*c",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("AABC","a.*c",[caseless]))), <<"AXYZD">> = iolist_to_binary(join(re:split("AXYZD","a.*c",[caseless, trim]))), <<"AXYZD">> = iolist_to_binary(join(re:split("AXYZD","a.*c",[caseless, {parts, 2}]))), <<"AXYZD">> = iolist_to_binary(join(re:split("AXYZD","a.*c",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABD","a[bc]d",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABD","a[bc]d",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABD","a[bc]d",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ACE","a[b-d]e",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ACE","a[b-d]e",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ACE","a[b-d]e",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[b-d]e",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[b-d]e",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[b-d]e",[caseless]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","a[b-d]e",[caseless, trim]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","a[b-d]e",[caseless, {parts, 2}]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","a[b-d]e",[caseless]))), <<"ABD">> = iolist_to_binary(join(re:split("ABD","a[b-d]e",[caseless, trim]))), <<"ABD">> = iolist_to_binary(join(re:split("ABD","a[b-d]e",[caseless, {parts, 2}]))), <<"ABD">> = iolist_to_binary(join(re:split("ABD","a[b-d]e",[caseless]))), <<"A">> = iolist_to_binary(join(re:split("AAC","a[b-d]",[caseless, trim]))), <<"A:">> = iolist_to_binary(join(re:split("AAC","a[b-d]",[caseless, {parts, 2}]))), <<"A:">> = iolist_to_binary(join(re:split("AAC","a[b-d]",[caseless]))), <<"">> = iolist_to_binary(join(re:split("A-","a[-b]",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("A-","a[-b]",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("A-","a[-b]",[caseless]))), <<"">> = iolist_to_binary(join(re:split("A-","a[b-]",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("A-","a[b-]",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("A-","a[b-]",[caseless]))), <<"">> = iolist_to_binary(join(re:split("A]","a]",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("A]","a]",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("A]","a]",[caseless]))), ok. run22() -> <<"">> = iolist_to_binary(join(re:split("A]B","a[]]b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("A]B","a[]]b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("A]B","a[]]b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("AED","a[^bc]d",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("AED","a[^bc]d",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("AED","a[^bc]d",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ADC","a[^-b]c",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ADC","a[^-b]c",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ADC","a[^-b]c",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[^-b]c",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[^-b]c",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a[^-b]c",[caseless]))), <<"ABD">> = iolist_to_binary(join(re:split("ABD","a[^-b]c",[caseless, trim]))), <<"ABD">> = iolist_to_binary(join(re:split("ABD","a[^-b]c",[caseless, {parts, 2}]))), <<"ABD">> = iolist_to_binary(join(re:split("ABD","a[^-b]c",[caseless]))), <<"A-C">> = iolist_to_binary(join(re:split("A-C","a[^-b]c",[caseless, trim]))), <<"A-C">> = iolist_to_binary(join(re:split("A-C","a[^-b]c",[caseless, {parts, 2}]))), <<"A-C">> = iolist_to_binary(join(re:split("A-C","a[^-b]c",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ADC","a[^]b]c",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ADC","a[^]b]c",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ADC","a[^]b]c",[caseless]))), <<":C">> = iolist_to_binary(join(re:split("ABC","ab|cd",[caseless, trim]))), <<":C">> = iolist_to_binary(join(re:split("ABC","ab|cd",[caseless, {parts, 2}]))), <<":C">> = iolist_to_binary(join(re:split("ABC","ab|cd",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABCD","ab|cd",[caseless, trim]))), <<":CD">> = iolist_to_binary(join(re:split("ABCD","ab|cd",[caseless, {parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("ABCD","ab|cd",[caseless]))), <<"D">> = iolist_to_binary(join(re:split("DEF","()ef",[caseless, trim]))), <<"D::">> = iolist_to_binary(join(re:split("DEF","()ef",[caseless, {parts, 2}]))), <<"D::">> = iolist_to_binary(join(re:split("DEF","()ef",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","$b",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","$b",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","$b",[caseless]))), <<"A]C">> = iolist_to_binary(join(re:split("A]C","$b",[caseless, trim]))), <<"A]C">> = iolist_to_binary(join(re:split("A]C","$b",[caseless, {parts, 2}]))), <<"A]C">> = iolist_to_binary(join(re:split("A]C","$b",[caseless]))), <<"B">> = iolist_to_binary(join(re:split("B","$b",[caseless, trim]))), <<"B">> = iolist_to_binary(join(re:split("B","$b",[caseless, {parts, 2}]))), <<"B">> = iolist_to_binary(join(re:split("B","$b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("A(B","a\\(b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("A(B","a\\(b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("A(B","a\\(b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("AB","a\\(*b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("AB","a\\(*b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("AB","a\\(*b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("A((B","a\\(*b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("A((B","a\\(*b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("A((B","a\\(*b",[caseless]))), <<"A">> = iolist_to_binary(join(re:split("A","a\\\\b",[caseless, notbol, trim]))), <<"A">> = iolist_to_binary(join(re:split("A","a\\\\b",[caseless, notbol, {parts, 2}]))), <<"A">> = iolist_to_binary(join(re:split("A","a\\\\b",[caseless, notbol]))), <<":A:A:BC">> = iolist_to_binary(join(re:split("ABC","((a))",[caseless, trim]))), <<":A:A:BC">> = iolist_to_binary(join(re:split("ABC","((a))",[caseless, {parts, 2}]))), <<":A:A:BC">> = iolist_to_binary(join(re:split("ABC","((a))",[caseless]))), <<":A:C">> = iolist_to_binary(join(re:split("ABC","(a)b(c)",[caseless, trim]))), <<":A:C:">> = iolist_to_binary(join(re:split("ABC","(a)b(c)",[caseless, {parts, 2}]))), <<":A:C:">> = iolist_to_binary(join(re:split("ABC","(a)b(c)",[caseless]))), <<"AABB">> = iolist_to_binary(join(re:split("AABBABC","a+b+c",[caseless, trim]))), <<"AABB:">> = iolist_to_binary(join(re:split("AABBABC","a+b+c",[caseless, {parts, 2}]))), <<"AABB:">> = iolist_to_binary(join(re:split("AABBABC","a+b+c",[caseless]))), <<"AABB">> = iolist_to_binary(join(re:split("AABBABC","a{1,}b{1,}c",[caseless, trim]))), <<"AABB:">> = iolist_to_binary(join(re:split("AABBABC","a{1,}b{1,}c",[caseless, {parts, 2}]))), <<"AABB:">> = iolist_to_binary(join(re:split("AABBABC","a{1,}b{1,}c",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABCABC","a.+?c",[caseless, trim]))), <<":ABC">> = iolist_to_binary(join(re:split("ABCABC","a.+?c",[caseless, {parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("ABCABC","a.+?c",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABCABC","a.*?c",[caseless, trim]))), <<":ABC">> = iolist_to_binary(join(re:split("ABCABC","a.*?c",[caseless, {parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("ABCABC","a.*?c",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABCABC","a.{0,5}?c",[caseless, trim]))), <<":ABC">> = iolist_to_binary(join(re:split("ABCABC","a.{0,5}?c",[caseless, {parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("ABCABC","a.{0,5}?c",[caseless]))), <<":B">> = iolist_to_binary(join(re:split("AB","(a+|b)*",[caseless, trim]))), <<":B:">> = iolist_to_binary(join(re:split("AB","(a+|b)*",[caseless, {parts, 2}]))), <<":B:">> = iolist_to_binary(join(re:split("AB","(a+|b)*",[caseless]))), <<":B">> = iolist_to_binary(join(re:split("AB","(a+|b){0,}",[caseless, trim]))), <<":B:">> = iolist_to_binary(join(re:split("AB","(a+|b){0,}",[caseless, {parts, 2}]))), <<":B:">> = iolist_to_binary(join(re:split("AB","(a+|b){0,}",[caseless]))), <<":B">> = iolist_to_binary(join(re:split("AB","(a+|b)+",[caseless, trim]))), <<":B:">> = iolist_to_binary(join(re:split("AB","(a+|b)+",[caseless, {parts, 2}]))), <<":B:">> = iolist_to_binary(join(re:split("AB","(a+|b)+",[caseless]))), ok. run23() -> <<":B">> = iolist_to_binary(join(re:split("AB","(a+|b){1,}",[caseless, trim]))), <<":B:">> = iolist_to_binary(join(re:split("AB","(a+|b){1,}",[caseless, {parts, 2}]))), <<":B:">> = iolist_to_binary(join(re:split("AB","(a+|b){1,}",[caseless]))), <<":A::B">> = iolist_to_binary(join(re:split("AB","(a+|b)?",[caseless, trim]))), <<":A:B">> = iolist_to_binary(join(re:split("AB","(a+|b)?",[caseless, {parts, 2}]))), <<":A::B:">> = iolist_to_binary(join(re:split("AB","(a+|b)?",[caseless]))), <<":A::B">> = iolist_to_binary(join(re:split("AB","(a+|b){0,1}",[caseless, trim]))), <<":A:B">> = iolist_to_binary(join(re:split("AB","(a+|b){0,1}",[caseless, {parts, 2}]))), <<":A::B:">> = iolist_to_binary(join(re:split("AB","(a+|b){0,1}",[caseless]))), <<":A::B">> = iolist_to_binary(join(re:split("AB","(a+|b){0,1}?",[caseless, trim]))), <<":A:B">> = iolist_to_binary(join(re:split("AB","(a+|b){0,1}?",[caseless, {parts, 2}]))), <<":A::B:">> = iolist_to_binary(join(re:split("AB","(a+|b){0,1}?",[caseless]))), <<"">> = iolist_to_binary(join(re:split("CDE","[^ab]*",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("CDE","[^ab]*",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("CDE","[^ab]*",[caseless]))), <<":C">> = iolist_to_binary(join(re:split("ABBBCD","([abc])*d",[caseless, trim]))), <<":C:">> = iolist_to_binary(join(re:split("ABBBCD","([abc])*d",[caseless, {parts, 2}]))), <<":C:">> = iolist_to_binary(join(re:split("ABBBCD","([abc])*d",[caseless]))), <<":A">> = iolist_to_binary(join(re:split("ABCD","([abc])*bcd",[caseless, trim]))), <<":A:">> = iolist_to_binary(join(re:split("ABCD","([abc])*bcd",[caseless, {parts, 2}]))), <<":A:">> = iolist_to_binary(join(re:split("ABCD","([abc])*bcd",[caseless]))), <<"">> = iolist_to_binary(join(re:split("E","a|b|c|d|e",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("E","a|b|c|d|e",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("E","a|b|c|d|e",[caseless]))), <<":E">> = iolist_to_binary(join(re:split("EF","(a|b|c|d|e)f",[caseless, trim]))), <<":E:">> = iolist_to_binary(join(re:split("EF","(a|b|c|d|e)f",[caseless, {parts, 2}]))), <<":E:">> = iolist_to_binary(join(re:split("EF","(a|b|c|d|e)f",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ABCDEFG","abcd*efg",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABCDEFG","abcd*efg",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABCDEFG","abcd*efg",[caseless]))), <<"X:Y:Z">> = iolist_to_binary(join(re:split("XABYABBBZ","ab*",[caseless, trim]))), <<"X:YABBBZ">> = iolist_to_binary(join(re:split("XABYABBBZ","ab*",[caseless, {parts, 2}]))), <<"X:Y:Z">> = iolist_to_binary(join(re:split("XABYABBBZ","ab*",[caseless]))), <<"X:Y:Z">> = iolist_to_binary(join(re:split("XAYABBBZ","ab*",[caseless, trim]))), <<"X:YABBBZ">> = iolist_to_binary(join(re:split("XAYABBBZ","ab*",[caseless, {parts, 2}]))), <<"X:Y:Z">> = iolist_to_binary(join(re:split("XAYABBBZ","ab*",[caseless]))), <<"AB:CD">> = iolist_to_binary(join(re:split("ABCDE","(ab|cd)e",[caseless, trim]))), <<"AB:CD:">> = iolist_to_binary(join(re:split("ABCDE","(ab|cd)e",[caseless, {parts, 2}]))), <<"AB:CD:">> = iolist_to_binary(join(re:split("ABCDE","(ab|cd)e",[caseless]))), <<"">> = iolist_to_binary(join(re:split("HIJ","[abhgefdc]ij",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("HIJ","[abhgefdc]ij",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("HIJ","[abhgefdc]ij",[caseless]))), <<"ABCDE">> = iolist_to_binary(join(re:split("ABCDE","^(ab|cd)e",[caseless, trim]))), <<"ABCDE">> = iolist_to_binary(join(re:split("ABCDE","^(ab|cd)e",[caseless, {parts, 2}]))), <<"ABCDE">> = iolist_to_binary(join(re:split("ABCDE","^(ab|cd)e",[caseless]))), <<"ABCD">> = iolist_to_binary(join(re:split("ABCDEF","(abc|)ef",[caseless, trim]))), <<"ABCD::">> = iolist_to_binary(join(re:split("ABCDEF","(abc|)ef",[caseless, {parts, 2}]))), <<"ABCD::">> = iolist_to_binary(join(re:split("ABCDEF","(abc|)ef",[caseless]))), <<"A:B">> = iolist_to_binary(join(re:split("ABCD","(a|b)c*d",[caseless, trim]))), <<"A:B:">> = iolist_to_binary(join(re:split("ABCD","(a|b)c*d",[caseless, {parts, 2}]))), <<"A:B:">> = iolist_to_binary(join(re:split("ABCD","(a|b)c*d",[caseless]))), <<":A">> = iolist_to_binary(join(re:split("ABC","(ab|ab*)bc",[caseless, trim]))), <<":A:">> = iolist_to_binary(join(re:split("ABC","(ab|ab*)bc",[caseless, {parts, 2}]))), <<":A:">> = iolist_to_binary(join(re:split("ABC","(ab|ab*)bc",[caseless]))), <<":BC">> = iolist_to_binary(join(re:split("ABC","a([bc]*)c*",[caseless, trim]))), <<":BC:">> = iolist_to_binary(join(re:split("ABC","a([bc]*)c*",[caseless, {parts, 2}]))), <<":BC:">> = iolist_to_binary(join(re:split("ABC","a([bc]*)c*",[caseless]))), ok. run24() -> <<":BC:D">> = iolist_to_binary(join(re:split("ABCD","a([bc]*)(c*d)",[caseless, trim]))), <<":BC:D:">> = iolist_to_binary(join(re:split("ABCD","a([bc]*)(c*d)",[caseless, {parts, 2}]))), <<":BC:D:">> = iolist_to_binary(join(re:split("ABCD","a([bc]*)(c*d)",[caseless]))), <<":BC:D">> = iolist_to_binary(join(re:split("ABCD","a([bc]+)(c*d)",[caseless, trim]))), <<":BC:D:">> = iolist_to_binary(join(re:split("ABCD","a([bc]+)(c*d)",[caseless, {parts, 2}]))), <<":BC:D:">> = iolist_to_binary(join(re:split("ABCD","a([bc]+)(c*d)",[caseless]))), <<":B:CD">> = iolist_to_binary(join(re:split("ABCD","a([bc]*)(c+d)",[caseless, trim]))), <<":B:CD:">> = iolist_to_binary(join(re:split("ABCD","a([bc]*)(c+d)",[caseless, {parts, 2}]))), <<":B:CD:">> = iolist_to_binary(join(re:split("ABCD","a([bc]*)(c+d)",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ADCDCDE","a[bcd]*dcdcde",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ADCDCDE","a[bcd]*dcdcde",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ADCDCDE","a[bcd]*dcdcde",[caseless]))), <<":AB">> = iolist_to_binary(join(re:split("ABC","(ab|a)b*c",[caseless, trim]))), <<":AB:">> = iolist_to_binary(join(re:split("ABC","(ab|a)b*c",[caseless, {parts, 2}]))), <<":AB:">> = iolist_to_binary(join(re:split("ABC","(ab|a)b*c",[caseless]))), <<":ABC:A:B:D">> = iolist_to_binary(join(re:split("ABCD","((a)(b)c)(d)",[caseless, trim]))), <<":ABC:A:B:D:">> = iolist_to_binary(join(re:split("ABCD","((a)(b)c)(d)",[caseless, {parts, 2}]))), <<":ABC:A:B:D:">> = iolist_to_binary(join(re:split("ABCD","((a)(b)c)(d)",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ALPHA","[a-zA-Z_][a-zA-Z0-9_]*",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ALPHA","[a-zA-Z_][a-zA-Z0-9_]*",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ALPHA","[a-zA-Z_][a-zA-Z0-9_]*",[caseless]))), <<"A">> = iolist_to_binary(join(re:split("ABH","^a(bc+|b[eh])g|.h$",[caseless, trim]))), <<"A::">> = iolist_to_binary(join(re:split("ABH","^a(bc+|b[eh])g|.h$",[caseless, {parts, 2}]))), <<"A::">> = iolist_to_binary(join(re:split("ABH","^a(bc+|b[eh])g|.h$",[caseless]))), <<":EFFGZ">> = iolist_to_binary(join(re:split("EFFGZ","(bc+d$|ef*g.|h?i(j|k))",[caseless, trim]))), <<":EFFGZ::">> = iolist_to_binary(join(re:split("EFFGZ","(bc+d$|ef*g.|h?i(j|k))",[caseless, {parts, 2}]))), <<":EFFGZ::">> = iolist_to_binary(join(re:split("EFFGZ","(bc+d$|ef*g.|h?i(j|k))",[caseless]))), <<":IJ:J">> = iolist_to_binary(join(re:split("IJ","(bc+d$|ef*g.|h?i(j|k))",[caseless, trim]))), <<":IJ:J:">> = iolist_to_binary(join(re:split("IJ","(bc+d$|ef*g.|h?i(j|k))",[caseless, {parts, 2}]))), <<":IJ:J:">> = iolist_to_binary(join(re:split("IJ","(bc+d$|ef*g.|h?i(j|k))",[caseless]))), <<"R:EFFGZ">> = iolist_to_binary(join(re:split("REFFGZ","(bc+d$|ef*g.|h?i(j|k))",[caseless, trim]))), <<"R:EFFGZ::">> = iolist_to_binary(join(re:split("REFFGZ","(bc+d$|ef*g.|h?i(j|k))",[caseless, {parts, 2}]))), <<"R:EFFGZ::">> = iolist_to_binary(join(re:split("REFFGZ","(bc+d$|ef*g.|h?i(j|k))",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(bc+d$|ef*g.|h?i(j|k))",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(bc+d$|ef*g.|h?i(j|k))",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(bc+d$|ef*g.|h?i(j|k))",[caseless]))), <<"ADCDCDE">> = iolist_to_binary(join(re:split("ADCDCDE","(bc+d$|ef*g.|h?i(j|k))",[caseless, trim]))), <<"ADCDCDE">> = iolist_to_binary(join(re:split("ADCDCDE","(bc+d$|ef*g.|h?i(j|k))",[caseless, {parts, 2}]))), <<"ADCDCDE">> = iolist_to_binary(join(re:split("ADCDCDE","(bc+d$|ef*g.|h?i(j|k))",[caseless]))), <<"EFFG">> = iolist_to_binary(join(re:split("EFFG","(bc+d$|ef*g.|h?i(j|k))",[caseless, trim]))), <<"EFFG">> = iolist_to_binary(join(re:split("EFFG","(bc+d$|ef*g.|h?i(j|k))",[caseless, {parts, 2}]))), <<"EFFG">> = iolist_to_binary(join(re:split("EFFG","(bc+d$|ef*g.|h?i(j|k))",[caseless]))), <<"BCDD">> = iolist_to_binary(join(re:split("BCDD","(bc+d$|ef*g.|h?i(j|k))",[caseless, trim]))), <<"BCDD">> = iolist_to_binary(join(re:split("BCDD","(bc+d$|ef*g.|h?i(j|k))",[caseless, {parts, 2}]))), <<"BCDD">> = iolist_to_binary(join(re:split("BCDD","(bc+d$|ef*g.|h?i(j|k))",[caseless]))), <<":A:A:A:A:A:A:A:A:A:A">> = iolist_to_binary(join(re:split("A","((((((((((a))))))))))",[caseless, trim]))), <<":A:A:A:A:A:A:A:A:A:A:">> = iolist_to_binary(join(re:split("A","((((((((((a))))))))))",[caseless, {parts, 2}]))), <<":A:A:A:A:A:A:A:A:A:A:">> = iolist_to_binary(join(re:split("A","((((((((((a))))))))))",[caseless]))), <<":A:A:A:A:A:A:A:A:A:A">> = iolist_to_binary(join(re:split("AA","((((((((((a))))))))))\\10",[caseless, trim]))), <<":A:A:A:A:A:A:A:A:A:A:">> = iolist_to_binary(join(re:split("AA","((((((((((a))))))))))\\10",[caseless, {parts, 2}]))), <<":A:A:A:A:A:A:A:A:A:A:">> = iolist_to_binary(join(re:split("AA","((((((((((a))))))))))\\10",[caseless]))), <<":A:A:A:A:A:A:A:A:A">> = iolist_to_binary(join(re:split("A","(((((((((a)))))))))",[caseless, trim]))), <<":A:A:A:A:A:A:A:A:A:">> = iolist_to_binary(join(re:split("A","(((((((((a)))))))))",[caseless, {parts, 2}]))), <<":A:A:A:A:A:A:A:A:A:">> = iolist_to_binary(join(re:split("A","(((((((((a)))))))))",[caseless]))), <<":A">> = iolist_to_binary(join(re:split("A","(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))",[caseless, trim]))), <<":A:">> = iolist_to_binary(join(re:split("A","(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))",[caseless, {parts, 2}]))), <<":A:">> = iolist_to_binary(join(re:split("A","(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))",[caseless]))), <<":C">> = iolist_to_binary(join(re:split("C","(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))",[caseless, trim]))), <<":C:">> = iolist_to_binary(join(re:split("C","(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))",[caseless, {parts, 2}]))), <<":C:">> = iolist_to_binary(join(re:split("C","(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","multiple words of text",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","multiple words of text",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","multiple words of text",[caseless]))), <<"AA">> = iolist_to_binary(join(re:split("AA","multiple words of text",[caseless, trim]))), <<"AA">> = iolist_to_binary(join(re:split("AA","multiple words of text",[caseless, {parts, 2}]))), <<"AA">> = iolist_to_binary(join(re:split("AA","multiple words of text",[caseless]))), <<"UH-UH">> = iolist_to_binary(join(re:split("UH-UH","multiple words of text",[caseless, trim]))), <<"UH-UH">> = iolist_to_binary(join(re:split("UH-UH","multiple words of text",[caseless, {parts, 2}]))), <<"UH-UH">> = iolist_to_binary(join(re:split("UH-UH","multiple words of text",[caseless]))), <<":, YEAH">> = iolist_to_binary(join(re:split("MULTIPLE WORDS, YEAH","multiple words",[caseless, trim]))), <<":, YEAH">> = iolist_to_binary(join(re:split("MULTIPLE WORDS, YEAH","multiple words",[caseless, {parts, 2}]))), <<":, YEAH">> = iolist_to_binary(join(re:split("MULTIPLE WORDS, YEAH","multiple words",[caseless]))), <<":AB:DE">> = iolist_to_binary(join(re:split("ABCDE","(.*)c(.*)",[caseless, trim]))), <<":AB:DE:">> = iolist_to_binary(join(re:split("ABCDE","(.*)c(.*)",[caseless, {parts, 2}]))), <<":AB:DE:">> = iolist_to_binary(join(re:split("ABCDE","(.*)c(.*)",[caseless]))), <<":A:B">> = iolist_to_binary(join(re:split("(A, B)","\\((.*), (.*)\\)",[caseless, trim]))), <<":A:B:">> = iolist_to_binary(join(re:split("(A, B)","\\((.*), (.*)\\)",[caseless, {parts, 2}]))), <<":A:B:">> = iolist_to_binary(join(re:split("(A, B)","\\((.*), (.*)\\)",[caseless]))), ok. run25() -> <<"">> = iolist_to_binary(join(re:split("ABCD","abcd",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ABCD","abcd",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ABCD","abcd",[caseless]))), <<":BC">> = iolist_to_binary(join(re:split("ABCD","a(bc)d",[caseless, trim]))), <<":BC:">> = iolist_to_binary(join(re:split("ABCD","a(bc)d",[caseless, {parts, 2}]))), <<":BC:">> = iolist_to_binary(join(re:split("ABCD","a(bc)d",[caseless]))), <<"">> = iolist_to_binary(join(re:split("AC","a[-]?c",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("AC","a[-]?c",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("AC","a[-]?c",[caseless]))), <<":ABC">> = iolist_to_binary(join(re:split("ABCABC","(abc)\\1",[caseless, trim]))), <<":ABC:">> = iolist_to_binary(join(re:split("ABCABC","(abc)\\1",[caseless, {parts, 2}]))), <<":ABC:">> = iolist_to_binary(join(re:split("ABCABC","(abc)\\1",[caseless]))), <<":ABC">> = iolist_to_binary(join(re:split("ABCABC","([a-c]*)\\1",[caseless, trim]))), <<":ABC:">> = iolist_to_binary(join(re:split("ABCABC","([a-c]*)\\1",[caseless, {parts, 2}]))), <<":ABC:">> = iolist_to_binary(join(re:split("ABCABC","([a-c]*)\\1",[caseless]))), <<"ab">> = iolist_to_binary(join(re:split("abad","a(?!b).",[trim]))), <<"ab:">> = iolist_to_binary(join(re:split("abad","a(?!b).",[{parts, 2}]))), <<"ab:">> = iolist_to_binary(join(re:split("abad","a(?!b).",[]))), <<"ab">> = iolist_to_binary(join(re:split("abad","a(?=d).",[trim]))), <<"ab:">> = iolist_to_binary(join(re:split("abad","a(?=d).",[{parts, 2}]))), <<"ab:">> = iolist_to_binary(join(re:split("abad","a(?=d).",[]))), <<"ab">> = iolist_to_binary(join(re:split("abad","a(?=c|d).",[trim]))), <<"ab:">> = iolist_to_binary(join(re:split("abad","a(?=c|d).",[{parts, 2}]))), <<"ab:">> = iolist_to_binary(join(re:split("abad","a(?=c|d).",[]))), <<":e">> = iolist_to_binary(join(re:split("ace","a(?:b|c|d)(.)",[trim]))), <<":e:">> = iolist_to_binary(join(re:split("ace","a(?:b|c|d)(.)",[{parts, 2}]))), <<":e:">> = iolist_to_binary(join(re:split("ace","a(?:b|c|d)(.)",[]))), <<":e">> = iolist_to_binary(join(re:split("ace","a(?:b|c|d)*(.)",[trim]))), <<":e:">> = iolist_to_binary(join(re:split("ace","a(?:b|c|d)*(.)",[{parts, 2}]))), <<":e:">> = iolist_to_binary(join(re:split("ace","a(?:b|c|d)*(.)",[]))), <<":e">> = iolist_to_binary(join(re:split("ace","a(?:b|c|d)+?(.)",[trim]))), <<":e:">> = iolist_to_binary(join(re:split("ace","a(?:b|c|d)+?(.)",[{parts, 2}]))), <<":e:">> = iolist_to_binary(join(re:split("ace","a(?:b|c|d)+?(.)",[]))), <<":d:bcdbe">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d)+?(.)",[trim]))), <<":d:bcdbe">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d)+?(.)",[{parts, 2}]))), <<":d:bcdbe">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d)+?(.)",[]))), <<":e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d)+(.)",[trim]))), <<":e:">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d)+(.)",[{parts, 2}]))), <<":e:">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d)+(.)",[]))), <<":b:cdbe">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){2}(.)",[trim]))), <<":b:cdbe">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){2}(.)",[{parts, 2}]))), <<":b:cdbe">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){2}(.)",[]))), <<":b:e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){4,5}(.)",[trim]))), <<":b:e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){4,5}(.)",[{parts, 2}]))), <<":b:e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){4,5}(.)",[]))), <<":d:be">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){4,5}?(.)",[trim]))), <<":d:be">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){4,5}?(.)",[{parts, 2}]))), <<":d:be">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){4,5}?(.)",[]))), <<":bar:foo:bar">> = iolist_to_binary(join(re:split("foobar","((foo)|(bar))*",[trim]))), <<":bar:foo:bar:">> = iolist_to_binary(join(re:split("foobar","((foo)|(bar))*",[{parts, 2}]))), <<":bar:foo:bar:">> = iolist_to_binary(join(re:split("foobar","((foo)|(bar))*",[]))), <<":e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){6,7}(.)",[trim]))), <<":e:">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){6,7}(.)",[{parts, 2}]))), <<":e:">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){6,7}(.)",[]))), <<":e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){6,7}?(.)",[trim]))), <<":e:">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){6,7}?(.)",[{parts, 2}]))), <<":e:">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){6,7}?(.)",[]))), <<":e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,6}(.)",[trim]))), <<":e:">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,6}(.)",[{parts, 2}]))), <<":e:">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,6}(.)",[]))), <<":b:e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,6}?(.)",[trim]))), <<":b:e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,6}?(.)",[{parts, 2}]))), <<":b:e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,6}?(.)",[]))), ok. run26() -> <<":e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,7}(.)",[trim]))), <<":e:">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,7}(.)",[{parts, 2}]))), <<":e:">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,7}(.)",[]))), <<":b:e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,7}?(.)",[trim]))), <<":b:e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,7}?(.)",[{parts, 2}]))), <<":b:e">> = iolist_to_binary(join(re:split("acdbcdbe","a(?:b|c|d){5,7}?(.)",[]))), <<":c:e">> = iolist_to_binary(join(re:split("ace","a(?:b|(c|e){1,2}?|d)+?(.)",[trim]))), <<":c:e:">> = iolist_to_binary(join(re:split("ace","a(?:b|(c|e){1,2}?|d)+?(.)",[{parts, 2}]))), <<":c:e:">> = iolist_to_binary(join(re:split("ace","a(?:b|(c|e){1,2}?|d)+?(.)",[]))), <<":A">> = iolist_to_binary(join(re:split("AB","^(.+)?B",[trim]))), <<":A:">> = iolist_to_binary(join(re:split("AB","^(.+)?B",[{parts, 2}]))), <<":A:">> = iolist_to_binary(join(re:split("AB","^(.+)?B",[]))), <<":.">> = iolist_to_binary(join(re:split(".","^([^a-z])|(\\^)$",[trim]))), <<":.::">> = iolist_to_binary(join(re:split(".","^([^a-z])|(\\^)$",[{parts, 2}]))), <<":.::">> = iolist_to_binary(join(re:split(".","^([^a-z])|(\\^)$",[]))), <<":OUT">> = iolist_to_binary(join(re:split("<&OUT","^[<>]&",[trim]))), <<":OUT">> = iolist_to_binary(join(re:split("<&OUT","^[<>]&",[{parts, 2}]))), <<":OUT">> = iolist_to_binary(join(re:split("<&OUT","^[<>]&",[]))), <<":aaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a\\1?){4}$",[trim]))), <<":aaaa:">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<":aaaa:">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a\\1?){4}$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a\\1?){4}$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a\\1?){4}$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a\\1?){4}$",[]))), <<"AB">> = iolist_to_binary(join(re:split("AB","^(a\\1?){4}$",[trim]))), <<"AB">> = iolist_to_binary(join(re:split("AB","^(a\\1?){4}$",[{parts, 2}]))), <<"AB">> = iolist_to_binary(join(re:split("AB","^(a\\1?){4}$",[]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a\\1?){4}$",[trim]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a\\1?){4}$",[]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a\\1?){4}$",[trim]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a\\1?){4}$",[{parts, 2}]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a\\1?){4}$",[]))), <<":aaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a(?(1)\\1)){4}$",[trim]))), <<":aaaa:">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a(?(1)\\1)){4}$",[{parts, 2}]))), <<":aaaa:">> = iolist_to_binary(join(re:split("aaaaaaaaaa","^(a(?(1)\\1)){4}$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a(?(1)\\1)){4}$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a(?(1)\\1)){4}$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a(?(1)\\1)){4}$",[]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a(?(1)\\1)){4}$",[trim]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a(?(1)\\1)){4}$",[{parts, 2}]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a(?(1)\\1)){4}$",[]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a(?(1)\\1)){4}$",[trim]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a(?(1)\\1)){4}$",[{parts, 2}]))), <<"aaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaa","^(a(?(1)\\1)){4}$",[]))), <<":f:o:o:b:a:r">> = iolist_to_binary(join(re:split("foobar","(?:(f)(o)(o)|(b)(a)(r))*",[trim]))), <<":f:o:o:b:a:r:">> = iolist_to_binary(join(re:split("foobar","(?:(f)(o)(o)|(b)(a)(r))*",[{parts, 2}]))), <<":f:o:o:b:a:r:">> = iolist_to_binary(join(re:split("foobar","(?:(f)(o)(o)|(b)(a)(r))*",[]))), <<"a">> = iolist_to_binary(join(re:split("ab","(?<=a)b",[trim]))), <<"a:">> = iolist_to_binary(join(re:split("ab","(?<=a)b",[{parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("ab","(?<=a)b",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=a)b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=a)b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=a)b",[]))), <<"cb">> = iolist_to_binary(join(re:split("cb","(?<=a)b",[trim]))), <<"cb">> = iolist_to_binary(join(re:split("cb","(?<=a)b",[{parts, 2}]))), <<"cb">> = iolist_to_binary(join(re:split("cb","(?<=a)b",[]))), <<"b">> = iolist_to_binary(join(re:split("b","(?<=a)b",[trim]))), <<"b">> = iolist_to_binary(join(re:split("b","(?<=a)b",[{parts, 2}]))), <<"b">> = iolist_to_binary(join(re:split("b","(?<=a)b",[]))), <<"a">> = iolist_to_binary(join(re:split("ab","(?> = iolist_to_binary(join(re:split("ab","(?> = iolist_to_binary(join(re:split("ab","(?> = iolist_to_binary(join(re:split("b","(?> = iolist_to_binary(join(re:split("b","(?> = iolist_to_binary(join(re:split("b","(?> = iolist_to_binary(join(re:split("b","(?> = iolist_to_binary(join(re:split("b","(?> = iolist_to_binary(join(re:split("b","(?> = iolist_to_binary(join(re:split("aba","(?:..)*a",[trim]))), <<":">> = iolist_to_binary(join(re:split("aba","(?:..)*a",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aba","(?:..)*a",[]))), <<":b">> = iolist_to_binary(join(re:split("aba","(?:..)*?a",[trim]))), <<":ba">> = iolist_to_binary(join(re:split("aba","(?:..)*?a",[{parts, 2}]))), <<":b:">> = iolist_to_binary(join(re:split("aba","(?:..)*?a",[]))), <<":b:c">> = iolist_to_binary(join(re:split("abc","^(?:b|a(?=(.)))*\\1",[trim]))), <<":b:c">> = iolist_to_binary(join(re:split("abc","^(?:b|a(?=(.)))*\\1",[{parts, 2}]))), <<":b:c">> = iolist_to_binary(join(re:split("abc","^(?:b|a(?=(.)))*\\1",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^(){3,5}",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^(){3,5}",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^(){3,5}",[]))), <<":a">> = iolist_to_binary(join(re:split("aax","^(a+)*ax",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aax","^(a+)*ax",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aax","^(a+)*ax",[]))), <<":a:a">> = iolist_to_binary(join(re:split("aax","^((a|b)+)*ax",[trim]))), <<":a:a:">> = iolist_to_binary(join(re:split("aax","^((a|b)+)*ax",[{parts, 2}]))), <<":a:a:">> = iolist_to_binary(join(re:split("aax","^((a|b)+)*ax",[]))), <<":a:a">> = iolist_to_binary(join(re:split("aax","^((a|bc)+)*ax",[trim]))), <<":a:a:">> = iolist_to_binary(join(re:split("aax","^((a|bc)+)*ax",[{parts, 2}]))), <<":a:a:">> = iolist_to_binary(join(re:split("aax","^((a|bc)+)*ax",[]))), <<"c">> = iolist_to_binary(join(re:split("cab","(a|x)*ab",[trim]))), <<"c::">> = iolist_to_binary(join(re:split("cab","(a|x)*ab",[{parts, 2}]))), <<"c::">> = iolist_to_binary(join(re:split("cab","(a|x)*ab",[]))), <<"c">> = iolist_to_binary(join(re:split("cab","(a)*ab",[trim]))), <<"c::">> = iolist_to_binary(join(re:split("cab","(a)*ab",[{parts, 2}]))), <<"c::">> = iolist_to_binary(join(re:split("cab","(a)*ab",[]))), ok. run27() -> <<"">> = iolist_to_binary(join(re:split("ab","(?:(?i)a)b",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab","(?:(?i)a)b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab","(?:(?i)a)b",[]))), <<":a">> = iolist_to_binary(join(re:split("ab","((?i)a)b",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("ab","((?i)a)b",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("ab","((?i)a)b",[]))), <<"">> = iolist_to_binary(join(re:split("Ab","(?:(?i)a)b",[trim]))), <<":">> = iolist_to_binary(join(re:split("Ab","(?:(?i)a)b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("Ab","(?:(?i)a)b",[]))), <<":A">> = iolist_to_binary(join(re:split("Ab","((?i)a)b",[trim]))), <<":A:">> = iolist_to_binary(join(re:split("Ab","((?i)a)b",[{parts, 2}]))), <<":A:">> = iolist_to_binary(join(re:split("Ab","((?i)a)b",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?i)a)b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?i)a)b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?i)a)b",[]))), <<"cb">> = iolist_to_binary(join(re:split("cb","(?:(?i)a)b",[trim]))), <<"cb">> = iolist_to_binary(join(re:split("cb","(?:(?i)a)b",[{parts, 2}]))), <<"cb">> = iolist_to_binary(join(re:split("cb","(?:(?i)a)b",[]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?:(?i)a)b",[trim]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?:(?i)a)b",[{parts, 2}]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?:(?i)a)b",[]))), <<"">> = iolist_to_binary(join(re:split("ab","(?i:a)b",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab","(?i:a)b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab","(?i:a)b",[]))), <<":a">> = iolist_to_binary(join(re:split("ab","((?i:a))b",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("ab","((?i:a))b",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("ab","((?i:a))b",[]))), <<"">> = iolist_to_binary(join(re:split("Ab","(?i:a)b",[trim]))), <<":">> = iolist_to_binary(join(re:split("Ab","(?i:a)b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("Ab","(?i:a)b",[]))), <<":A">> = iolist_to_binary(join(re:split("Ab","((?i:a))b",[trim]))), <<":A:">> = iolist_to_binary(join(re:split("Ab","((?i:a))b",[{parts, 2}]))), <<":A:">> = iolist_to_binary(join(re:split("Ab","((?i:a))b",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?i:a)b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?i:a)b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?i:a)b",[]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?i:a)b",[trim]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?i:a)b",[{parts, 2}]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?i:a)b",[]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?i:a)b",[trim]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?i:a)b",[{parts, 2}]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?i:a)b",[]))), <<"">> = iolist_to_binary(join(re:split("ab","(?:(?-i)a)b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ab","(?:(?-i)a)b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab","(?:(?-i)a)b",[caseless]))), <<":a">> = iolist_to_binary(join(re:split("ab","((?-i)a)b",[caseless, trim]))), <<":a:">> = iolist_to_binary(join(re:split("ab","((?-i)a)b",[caseless, {parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("ab","((?-i)a)b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("aB","(?:(?-i)a)b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("aB","(?:(?-i)a)b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aB","(?:(?-i)a)b",[caseless]))), <<":a">> = iolist_to_binary(join(re:split("aB","((?-i)a)b",[caseless, trim]))), <<":a:">> = iolist_to_binary(join(re:split("aB","((?-i)a)b",[caseless, {parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aB","((?-i)a)b",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?-i)a)b",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?-i)a)b",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?-i)a)b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("aB","(?:(?-i)a)b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("aB","(?:(?-i)a)b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aB","(?:(?-i)a)b",[caseless]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?:(?-i)a)b",[caseless, trim]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?:(?-i)a)b",[caseless, {parts, 2}]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?:(?-i)a)b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("aB","(?:(?-i)a)b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("aB","(?:(?-i)a)b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aB","(?:(?-i)a)b",[caseless]))), <<":a">> = iolist_to_binary(join(re:split("aB","((?-i)a)b",[caseless, trim]))), <<":a:">> = iolist_to_binary(join(re:split("aB","((?-i)a)b",[caseless, {parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aB","((?-i)a)b",[caseless]))), ok. run28() -> <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?-i)a)b",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?-i)a)b",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?:(?-i)a)b",[caseless]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?:(?-i)a)b",[caseless, trim]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?:(?-i)a)b",[caseless, {parts, 2}]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?:(?-i)a)b",[caseless]))), <<"AB">> = iolist_to_binary(join(re:split("AB","(?:(?-i)a)b",[caseless, trim]))), <<"AB">> = iolist_to_binary(join(re:split("AB","(?:(?-i)a)b",[caseless, {parts, 2}]))), <<"AB">> = iolist_to_binary(join(re:split("AB","(?:(?-i)a)b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("ab","(?-i:a)b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("ab","(?-i:a)b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab","(?-i:a)b",[caseless]))), <<":a">> = iolist_to_binary(join(re:split("ab","((?-i:a))b",[caseless, trim]))), <<":a:">> = iolist_to_binary(join(re:split("ab","((?-i:a))b",[caseless, {parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("ab","((?-i:a))b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("aB","(?-i:a)b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("aB","(?-i:a)b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aB","(?-i:a)b",[caseless]))), <<":a">> = iolist_to_binary(join(re:split("aB","((?-i:a))b",[caseless, trim]))), <<":a:">> = iolist_to_binary(join(re:split("aB","((?-i:a))b",[caseless, {parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aB","((?-i:a))b",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?-i:a)b",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?-i:a)b",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?-i:a)b",[caseless]))), <<"AB">> = iolist_to_binary(join(re:split("AB","(?-i:a)b",[caseless, trim]))), <<"AB">> = iolist_to_binary(join(re:split("AB","(?-i:a)b",[caseless, {parts, 2}]))), <<"AB">> = iolist_to_binary(join(re:split("AB","(?-i:a)b",[caseless]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?-i:a)b",[caseless, trim]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?-i:a)b",[caseless, {parts, 2}]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?-i:a)b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("aB","(?-i:a)b",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("aB","(?-i:a)b",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aB","(?-i:a)b",[caseless]))), <<":a">> = iolist_to_binary(join(re:split("aB","((?-i:a))b",[caseless, trim]))), <<":a:">> = iolist_to_binary(join(re:split("aB","((?-i:a))b",[caseless, {parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aB","((?-i:a))b",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?-i:a)b",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?-i:a)b",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?-i:a)b",[caseless]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?-i:a)b",[caseless, trim]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?-i:a)b",[caseless, {parts, 2}]))), <<"Ab">> = iolist_to_binary(join(re:split("Ab","(?-i:a)b",[caseless]))), <<"AB">> = iolist_to_binary(join(re:split("AB","(?-i:a)b",[caseless, trim]))), <<"AB">> = iolist_to_binary(join(re:split("AB","(?-i:a)b",[caseless, {parts, 2}]))), <<"AB">> = iolist_to_binary(join(re:split("AB","(?-i:a)b",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?-i:a.))b",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?-i:a.))b",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?-i:a.))b",[caseless]))), <<"AB">> = iolist_to_binary(join(re:split("AB","((?-i:a.))b",[caseless, trim]))), <<"AB">> = iolist_to_binary(join(re:split("AB","((?-i:a.))b",[caseless, {parts, 2}]))), <<"AB">> = iolist_to_binary(join(re:split("AB","((?-i:a.))b",[caseless]))), <<"a B">> = iolist_to_binary(join(re:split("a B","((?-i:a.))b",[caseless,trim]))), <<"a B">> = iolist_to_binary(join(re:split("a B","((?-i:a.))b",[caseless,{parts,2}]))), <<"a B">> = iolist_to_binary(join(re:split("a B","((?-i:a.))b",[caseless]))), <<":a ">> = iolist_to_binary(join(re:split("a B","((?s-i:a.))b",[caseless,trim]))), <<":a :">> = iolist_to_binary(join(re:split("a B","((?s-i:a.))b",[caseless,{parts,2}]))), <<":a :">> = iolist_to_binary(join(re:split("a B","((?s-i:a.))b",[caseless]))), <<"">> = iolist_to_binary(join(re:split("cabbbb","(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))",[trim]))), <<":">> = iolist_to_binary(join(re:split("cabbbb","(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("cabbbb","(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))",[]))), <<"">> = iolist_to_binary(join(re:split("caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))",[trim]))), <<":">> = iolist_to_binary(join(re:split("caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))",[]))), <<":Ab">> = iolist_to_binary(join(re:split("Ab4ab","(ab)\\d\\1",[caseless, trim]))), <<":Ab:">> = iolist_to_binary(join(re:split("Ab4ab","(ab)\\d\\1",[caseless, {parts, 2}]))), <<":Ab:">> = iolist_to_binary(join(re:split("Ab4ab","(ab)\\d\\1",[caseless]))), <<":ab">> = iolist_to_binary(join(re:split("ab4Ab","(ab)\\d\\1",[caseless, trim]))), <<":ab:">> = iolist_to_binary(join(re:split("ab4Ab","(ab)\\d\\1",[caseless, {parts, 2}]))), <<":ab:">> = iolist_to_binary(join(re:split("ab4Ab","(ab)\\d\\1",[caseless]))), <<"">> = iolist_to_binary(join(re:split("foobar1234baz","foo\\w*\\d{4}baz",[trim]))), <<":">> = iolist_to_binary(join(re:split("foobar1234baz","foo\\w*\\d{4}baz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("foobar1234baz","foo\\w*\\d{4}baz",[]))), <<":~~">> = iolist_to_binary(join(re:split("x~~","x(~~)*(?:(?:F)?)?",[trim]))), <<":~~:">> = iolist_to_binary(join(re:split("x~~","x(~~)*(?:(?:F)?)?",[{parts, 2}]))), <<":~~:">> = iolist_to_binary(join(re:split("x~~","x(~~)*(?:(?:F)?)?",[]))), <<"">> = iolist_to_binary(join(re:split("aaac","^a(?#xxx){3}c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaac","^a(?#xxx){3}c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaac","^a(?#xxx){3}c",[]))), ok. run29() -> <<"">> = iolist_to_binary(join(re:split("aaac","^a (?#xxx) (?#yyy) {3}c",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("aaac","^a (?#xxx) (?#yyy) {3}c",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaac","^a (?#xxx) (?#yyy) {3}c",[extended]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?> = iolist_to_binary(join(re:split("*** Failers","(?> = iolist_to_binary(join(re:split("*** Failers","(?> = iolist_to_binary(join(re:split("B B","(?> = iolist_to_binary(join(re:split("B B","(?> = iolist_to_binary(join(re:split("B B","(?> = iolist_to_binary(join(re:split("dbcb","(?> = iolist_to_binary(join(re:split("dbcb","(?> = iolist_to_binary(join(re:split("dbcb","(?> = iolist_to_binary(join(re:split("dbaacb","(?> = iolist_to_binary(join(re:split("dbaacb","(?> = iolist_to_binary(join(re:split("dbaacb","(?> = iolist_to_binary(join(re:split("dbaacb","(?> = iolist_to_binary(join(re:split("dbaacb","(?> = iolist_to_binary(join(re:split("dbaacb","(?> = iolist_to_binary(join(re:split("cdaccb","(?> = iolist_to_binary(join(re:split("cdaccb","(?> = iolist_to_binary(join(re:split("cdaccb","(?> = iolist_to_binary(join(re:split("","^(?:a?b?)*$",[trim]))), <<"">> = iolist_to_binary(join(re:split("","^(?:a?b?)*$",[{parts, 2}]))), <<"">> = iolist_to_binary(join(re:split("","^(?:a?b?)*$",[]))), <<"">> = iolist_to_binary(join(re:split("a","^(?:a?b?)*$",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","^(?:a?b?)*$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","^(?:a?b?)*$",[]))), <<"">> = iolist_to_binary(join(re:split("ab","^(?:a?b?)*$",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab","^(?:a?b?)*$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab","^(?:a?b?)*$",[]))), <<"">> = iolist_to_binary(join(re:split("aaa","^(?:a?b?)*$",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaa","^(?:a?b?)*$",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaa","^(?:a?b?)*$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?:a?b?)*$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?:a?b?)*$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?:a?b?)*$",[]))), <<"dbcb">> = iolist_to_binary(join(re:split("dbcb","^(?:a?b?)*$",[trim]))), <<"dbcb">> = iolist_to_binary(join(re:split("dbcb","^(?:a?b?)*$",[{parts, 2}]))), <<"dbcb">> = iolist_to_binary(join(re:split("dbcb","^(?:a?b?)*$",[]))), <<"a--">> = iolist_to_binary(join(re:split("a--","^(?:a?b?)*$",[trim]))), <<"a--">> = iolist_to_binary(join(re:split("a--","^(?:a?b?)*$",[{parts, 2}]))), <<"a--">> = iolist_to_binary(join(re:split("a--","^(?:a?b?)*$",[]))), <<"aa--">> = iolist_to_binary(join(re:split("aa--","^(?:a?b?)*$",[trim]))), <<"aa--">> = iolist_to_binary(join(re:split("aa--","^(?:a?b?)*$",[{parts, 2}]))), <<"aa--">> = iolist_to_binary(join(re:split("aa--","^(?:a?b?)*$",[]))), <<":a : :b: c">> = iolist_to_binary(join(re:split("a b c","((?s)^a(.))((?m)^b$)",[trim]))), <<":a : :b: c">> = iolist_to_binary(join(re:split("a b c","((?s)^a(.))((?m)^b$)",[{parts,2}]))), <<":a : :b: c">> = iolist_to_binary(join(re:split("a b c","((?s)^a(.))((?m)^b$)",[]))), <<"a :b: c">> = iolist_to_binary(join(re:split("a b c","((?m)^b$)",[trim]))), <<"a :b: c">> = iolist_to_binary(join(re:split("a b c","((?m)^b$)",[{parts,2}]))), <<"a :b: c">> = iolist_to_binary(join(re:split("a b c","((?m)^b$)",[]))), <<"a ">> = iolist_to_binary(join(re:split("a b","(?m)^b",[trim]))), <<"a :">> = iolist_to_binary(join(re:split("a b","(?m)^b",[{parts,2}]))), <<"a :">> = iolist_to_binary(join(re:split("a b","(?m)^b",[]))), <<"a :b">> = iolist_to_binary(join(re:split("a b","(?m)^(b)",[trim]))), <<"a :b:">> = iolist_to_binary(join(re:split("a b","(?m)^(b)",[{parts,2}]))), <<"a :b:">> = iolist_to_binary(join(re:split("a b","(?m)^(b)",[]))), <<"a :b">> = iolist_to_binary(join(re:split("a b","((?m)^b)",[trim]))), <<"a :b:">> = iolist_to_binary(join(re:split("a b","((?m)^b)",[{parts,2}]))), <<"a :b:">> = iolist_to_binary(join(re:split("a b","((?m)^b)",[]))), <<"a:b">> = iolist_to_binary(join(re:split("a b","\\n((?m)^b)",[trim]))), <<"a:b:">> = iolist_to_binary(join(re:split("a b","\\n((?m)^b)",[{parts,2}]))), <<"a:b:">> = iolist_to_binary(join(re:split("a b","\\n((?m)^b)",[]))), <<"a b: ">> = iolist_to_binary(join(re:split("a b c","((?s).)c(?!.)",[trim]))), <<"a b: :">> = iolist_to_binary(join(re:split("a b c","((?s).)c(?!.)",[{parts,2}]))), <<"a b: :">> = iolist_to_binary(join(re:split("a b c","((?s).)c(?!.)",[]))), <<"a b: ">> = iolist_to_binary(join(re:split("a b c","((?s).)c(?!.)",[trim]))), <<"a b: :">> = iolist_to_binary(join(re:split("a b c","((?s).)c(?!.)",[{parts,2}]))), <<"a b: :">> = iolist_to_binary(join(re:split("a b c","((?s).)c(?!.)",[]))), <<"a :b ">> = iolist_to_binary(join(re:split("a b c","((?s)b.)c(?!.)",[trim]))), <<"a :b :">> = iolist_to_binary(join(re:split("a b c","((?s)b.)c(?!.)",[{parts,2}]))), <<"a :b :">> = iolist_to_binary(join(re:split("a b c","((?s)b.)c(?!.)",[]))), <<"a :b ">> = iolist_to_binary(join(re:split("a b c","((?s)b.)c(?!.)",[trim]))), <<"a :b :">> = iolist_to_binary(join(re:split("a b c","((?s)b.)c(?!.)",[{parts,2}]))), <<"a :b :">> = iolist_to_binary(join(re:split("a b c","((?s)b.)c(?!.)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","()^b",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","()^b",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","()^b",[]))), <<"a b c">> = iolist_to_binary(join(re:split("a b c","()^b",[trim]))), <<"a b c">> = iolist_to_binary(join(re:split("a b c","()^b",[{parts,2}]))), <<"a b c">> = iolist_to_binary(join(re:split("a b c","()^b",[]))), <<"a b c">> = iolist_to_binary(join(re:split("a b c","()^b",[trim]))), <<"a b c">> = iolist_to_binary(join(re:split("a b c","()^b",[{parts,2}]))), <<"a b c">> = iolist_to_binary(join(re:split("a b c","()^b",[]))), <<"a :b: c">> = iolist_to_binary(join(re:split("a b c","((?m)^b)",[trim]))), <<"a :b: c">> = iolist_to_binary(join(re:split("a b c","((?m)^b)",[{parts,2}]))), <<"a :b: c">> = iolist_to_binary(join(re:split("a b c","((?m)^b)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(x)?(?(1)a|b)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(x)?(?(1)a|b)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(x)?(?(1)a|b)",[]))), <<"a">> = iolist_to_binary(join(re:split("a","(x)?(?(1)a|b)",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","(x)?(?(1)a|b)",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","(x)?(?(1)a|b)",[]))), <<"a">> = iolist_to_binary(join(re:split("a","(x)?(?(1)a|b)",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","(x)?(?(1)a|b)",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","(x)?(?(1)a|b)",[]))), <<"">> = iolist_to_binary(join(re:split("a","(x)?(?(1)b|a)",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a","(x)?(?(1)b|a)",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a","(x)?(?(1)b|a)",[]))), ok. run30() -> <<"">> = iolist_to_binary(join(re:split("a","()?(?(1)b|a)",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a","()?(?(1)b|a)",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a","()?(?(1)b|a)",[]))), <<"">> = iolist_to_binary(join(re:split("a","()?(?(1)a|b)",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a","()?(?(1)a|b)",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a","()?(?(1)a|b)",[]))), <<":(:)">> = iolist_to_binary(join(re:split("(blah)","^(\\()?blah(?(1)(\\)))$",[trim]))), <<":(:):">> = iolist_to_binary(join(re:split("(blah)","^(\\()?blah(?(1)(\\)))$",[{parts, 2}]))), <<":(:):">> = iolist_to_binary(join(re:split("(blah)","^(\\()?blah(?(1)(\\)))$",[]))), <<"">> = iolist_to_binary(join(re:split("blah","^(\\()?blah(?(1)(\\)))$",[trim]))), <<":::">> = iolist_to_binary(join(re:split("blah","^(\\()?blah(?(1)(\\)))$",[{parts, 2}]))), <<":::">> = iolist_to_binary(join(re:split("blah","^(\\()?blah(?(1)(\\)))$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\()?blah(?(1)(\\)))$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\()?blah(?(1)(\\)))$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\()?blah(?(1)(\\)))$",[]))), <<"a">> = iolist_to_binary(join(re:split("a","^(\\()?blah(?(1)(\\)))$",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","^(\\()?blah(?(1)(\\)))$",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","^(\\()?blah(?(1)(\\)))$",[]))), <<"blah)">> = iolist_to_binary(join(re:split("blah)","^(\\()?blah(?(1)(\\)))$",[trim]))), <<"blah)">> = iolist_to_binary(join(re:split("blah)","^(\\()?blah(?(1)(\\)))$",[{parts, 2}]))), <<"blah)">> = iolist_to_binary(join(re:split("blah)","^(\\()?blah(?(1)(\\)))$",[]))), <<"(blah">> = iolist_to_binary(join(re:split("(blah","^(\\()?blah(?(1)(\\)))$",[trim]))), <<"(blah">> = iolist_to_binary(join(re:split("(blah","^(\\()?blah(?(1)(\\)))$",[{parts, 2}]))), <<"(blah">> = iolist_to_binary(join(re:split("(blah","^(\\()?blah(?(1)(\\)))$",[]))), <<":(:)">> = iolist_to_binary(join(re:split("(blah)","^(\\(+)?blah(?(1)(\\)))$",[trim]))), <<":(:):">> = iolist_to_binary(join(re:split("(blah)","^(\\(+)?blah(?(1)(\\)))$",[{parts, 2}]))), <<":(:):">> = iolist_to_binary(join(re:split("(blah)","^(\\(+)?blah(?(1)(\\)))$",[]))), <<"">> = iolist_to_binary(join(re:split("blah","^(\\(+)?blah(?(1)(\\)))$",[trim]))), <<":::">> = iolist_to_binary(join(re:split("blah","^(\\(+)?blah(?(1)(\\)))$",[{parts, 2}]))), <<":::">> = iolist_to_binary(join(re:split("blah","^(\\(+)?blah(?(1)(\\)))$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\(+)?blah(?(1)(\\)))$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\(+)?blah(?(1)(\\)))$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\(+)?blah(?(1)(\\)))$",[]))), <<"blah)">> = iolist_to_binary(join(re:split("blah)","^(\\(+)?blah(?(1)(\\)))$",[trim]))), <<"blah)">> = iolist_to_binary(join(re:split("blah)","^(\\(+)?blah(?(1)(\\)))$",[{parts, 2}]))), <<"blah)">> = iolist_to_binary(join(re:split("blah)","^(\\(+)?blah(?(1)(\\)))$",[]))), <<"(blah">> = iolist_to_binary(join(re:split("(blah","^(\\(+)?blah(?(1)(\\)))$",[trim]))), <<"(blah">> = iolist_to_binary(join(re:split("(blah","^(\\(+)?blah(?(1)(\\)))$",[{parts, 2}]))), <<"(blah">> = iolist_to_binary(join(re:split("(blah","^(\\(+)?blah(?(1)(\\)))$",[]))), <<"">> = iolist_to_binary(join(re:split("a","(?(?!a)b|a)",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","(?(?!a)b|a)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","(?(?!a)b|a)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?(?=a)b|a)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?(?=a)b|a)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?(?=a)b|a)",[]))), <<"a">> = iolist_to_binary(join(re:split("a","(?(?=a)b|a)",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","(?(?=a)b|a)",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","(?(?=a)b|a)",[]))), <<"a">> = iolist_to_binary(join(re:split("a","(?(?=a)b|a)",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","(?(?=a)b|a)",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","(?(?=a)b|a)",[]))), <<"">> = iolist_to_binary(join(re:split("a","(?(?=a)a|b)",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","(?(?=a)a|b)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","(?(?=a)a|b)",[]))), <<"a:a:aab">> = iolist_to_binary(join(re:split("aaab","(?=(a+?))(\\1ab)",[trim]))), <<"a:a:aab:">> = iolist_to_binary(join(re:split("aaab","(?=(a+?))(\\1ab)",[{parts, 2}]))), <<"a:a:aab:">> = iolist_to_binary(join(re:split("aaab","(?=(a+?))(\\1ab)",[]))), <<":one:">> = iolist_to_binary(join(re:split("one:","(\\w+:)+",[trim]))), <<":one::">> = iolist_to_binary(join(re:split("one:","(\\w+:)+",[{parts, 2}]))), <<":one::">> = iolist_to_binary(join(re:split("one:","(\\w+:)+",[]))), <<"a:a">> = iolist_to_binary(join(re:split("a","$(?<=^(a))",[trim]))), <<"a:a:">> = iolist_to_binary(join(re:split("a","$(?<=^(a))",[{parts, 2}]))), <<"a:a:">> = iolist_to_binary(join(re:split("a","$(?<=^(a))",[]))), <<"a:a:aab">> = iolist_to_binary(join(re:split("aaab","(?=(a+?))(\\1ab)",[trim]))), <<"a:a:aab:">> = iolist_to_binary(join(re:split("aaab","(?=(a+?))(\\1ab)",[{parts, 2}]))), <<"a:a:aab:">> = iolist_to_binary(join(re:split("aaab","(?=(a+?))(\\1ab)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?=(a+?))\\1ab",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?=(a+?))\\1ab",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?=(a+?))\\1ab",[]))), <<"aaab">> = iolist_to_binary(join(re:split("aaab","^(?=(a+?))\\1ab",[trim]))), <<"aaab">> = iolist_to_binary(join(re:split("aaab","^(?=(a+?))\\1ab",[{parts, 2}]))), <<"aaab">> = iolist_to_binary(join(re:split("aaab","^(?=(a+?))\\1ab",[]))), <<"aaab">> = iolist_to_binary(join(re:split("aaab","^(?=(a+?))\\1ab",[trim]))), <<"aaab">> = iolist_to_binary(join(re:split("aaab","^(?=(a+?))\\1ab",[{parts, 2}]))), <<"aaab">> = iolist_to_binary(join(re:split("aaab","^(?=(a+?))\\1ab",[]))), <<"::abcd">> = iolist_to_binary(join(re:split("abcd","([\\w:]+::)?(\\w+)$",[trim]))), <<"::abcd:">> = iolist_to_binary(join(re:split("abcd","([\\w:]+::)?(\\w+)$",[{parts, 2}]))), <<"::abcd:">> = iolist_to_binary(join(re:split("abcd","([\\w:]+::)?(\\w+)$",[]))), <<":xy:z::::abcd">> = iolist_to_binary(join(re:split("xy:z:::abcd","([\\w:]+::)?(\\w+)$",[trim]))), <<":xy:z::::abcd:">> = iolist_to_binary(join(re:split("xy:z:::abcd","([\\w:]+::)?(\\w+)$",[{parts, 2}]))), <<":xy:z::::abcd:">> = iolist_to_binary(join(re:split("xy:z:::abcd","([\\w:]+::)?(\\w+)$",[]))), <<":c:d">> = iolist_to_binary(join(re:split("aexycd","^[^bcd]*(c+)",[trim]))), <<":c:d">> = iolist_to_binary(join(re:split("aexycd","^[^bcd]*(c+)",[{parts, 2}]))), <<":c:d">> = iolist_to_binary(join(re:split("aexycd","^[^bcd]*(c+)",[]))), <<"c:aa">> = iolist_to_binary(join(re:split("caab","(a*)b+",[trim]))), <<"c:aa:">> = iolist_to_binary(join(re:split("caab","(a*)b+",[{parts, 2}]))), <<"c:aa:">> = iolist_to_binary(join(re:split("caab","(a*)b+",[]))), <<"::abcd">> = iolist_to_binary(join(re:split("abcd","([\\w:]+::)?(\\w+)$",[trim]))), <<"::abcd:">> = iolist_to_binary(join(re:split("abcd","([\\w:]+::)?(\\w+)$",[{parts, 2}]))), <<"::abcd:">> = iolist_to_binary(join(re:split("abcd","([\\w:]+::)?(\\w+)$",[]))), <<":xy:z::::abcd">> = iolist_to_binary(join(re:split("xy:z:::abcd","([\\w:]+::)?(\\w+)$",[trim]))), <<":xy:z::::abcd:">> = iolist_to_binary(join(re:split("xy:z:::abcd","([\\w:]+::)?(\\w+)$",[{parts, 2}]))), <<":xy:z::::abcd:">> = iolist_to_binary(join(re:split("xy:z:::abcd","([\\w:]+::)?(\\w+)$",[]))), <<"*** ::Failers">> = iolist_to_binary(join(re:split("*** Failers","([\\w:]+::)?(\\w+)$",[trim]))), <<"*** ::Failers:">> = iolist_to_binary(join(re:split("*** Failers","([\\w:]+::)?(\\w+)$",[{parts, 2}]))), <<"*** ::Failers:">> = iolist_to_binary(join(re:split("*** Failers","([\\w:]+::)?(\\w+)$",[]))), <<"abcd:">> = iolist_to_binary(join(re:split("abcd:","([\\w:]+::)?(\\w+)$",[trim]))), <<"abcd:">> = iolist_to_binary(join(re:split("abcd:","([\\w:]+::)?(\\w+)$",[{parts, 2}]))), <<"abcd:">> = iolist_to_binary(join(re:split("abcd:","([\\w:]+::)?(\\w+)$",[]))), <<"abcd:">> = iolist_to_binary(join(re:split("abcd:","([\\w:]+::)?(\\w+)$",[trim]))), <<"abcd:">> = iolist_to_binary(join(re:split("abcd:","([\\w:]+::)?(\\w+)$",[{parts, 2}]))), <<"abcd:">> = iolist_to_binary(join(re:split("abcd:","([\\w:]+::)?(\\w+)$",[]))), <<":c:d">> = iolist_to_binary(join(re:split("aexycd","^[^bcd]*(c+)",[trim]))), <<":c:d">> = iolist_to_binary(join(re:split("aexycd","^[^bcd]*(c+)",[{parts, 2}]))), <<":c:d">> = iolist_to_binary(join(re:split("aexycd","^[^bcd]*(c+)",[]))), ok. run31() -> <<"">> = iolist_to_binary(join(re:split("aaab","(?>a+)b",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaab","(?>a+)b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaab","(?>a+)b",[]))), <<"a::[:b]::">> = iolist_to_binary(join(re:split("a:[b]:","([[:]+)",[trim]))), <<"a::[:b]:">> = iolist_to_binary(join(re:split("a:[b]:","([[:]+)",[{parts, 2}]))), <<"a::[:b]:::">> = iolist_to_binary(join(re:split("a:[b]:","([[:]+)",[]))), <<"a:=[:b]:=">> = iolist_to_binary(join(re:split("a=[b]=","([[=]+)",[trim]))), <<"a:=[:b]=">> = iolist_to_binary(join(re:split("a=[b]=","([[=]+)",[{parts, 2}]))), <<"a:=[:b]:=:">> = iolist_to_binary(join(re:split("a=[b]=","([[=]+)",[]))), <<"a:.[:b]:.">> = iolist_to_binary(join(re:split("a.[b].","([[.]+)",[trim]))), <<"a:.[:b].">> = iolist_to_binary(join(re:split("a.[b].","([[.]+)",[{parts, 2}]))), <<"a:.[:b]:.:">> = iolist_to_binary(join(re:split("a.[b].","([[.]+)",[]))), <<":aaab">> = iolist_to_binary(join(re:split("aaab","((?>a+)b)",[trim]))), <<":aaab:">> = iolist_to_binary(join(re:split("aaab","((?>a+)b)",[{parts, 2}]))), <<":aaab:">> = iolist_to_binary(join(re:split("aaab","((?>a+)b)",[]))), <<":aaa">> = iolist_to_binary(join(re:split("aaab","(?>(a+))b",[trim]))), <<":aaa:">> = iolist_to_binary(join(re:split("aaab","(?>(a+))b",[{parts, 2}]))), <<":aaa:">> = iolist_to_binary(join(re:split("aaab","(?>(a+))b",[]))), <<"((:x">> = iolist_to_binary(join(re:split("((abc(ade)ufh()()x","((?>[^()]+)|\\([^()]*\\))+",[trim]))), <<"((:x:">> = iolist_to_binary(join(re:split("((abc(ade)ufh()()x","((?>[^()]+)|\\([^()]*\\))+",[{parts, 2}]))), <<"((:x:">> = iolist_to_binary(join(re:split("((abc(ade)ufh()()x","((?>[^()]+)|\\([^()]*\\))+",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a\\Z",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a\\Z",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a\\Z",[]))), <<"aaab">> = iolist_to_binary(join(re:split("aaab","a\\Z",[trim]))), <<"aaab">> = iolist_to_binary(join(re:split("aaab","a\\Z",[{parts, 2}]))), <<"aaab">> = iolist_to_binary(join(re:split("aaab","a\\Z",[]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a\\Z",[trim]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a\\Z",[{parts,2}]))), <<"a b">> = iolist_to_binary(join(re:split("a b","a\\Z",[]))), <<"a ">> = iolist_to_binary(join(re:split("a b","b\\Z",[trim]))), <<"a :">> = iolist_to_binary(join(re:split("a b","b\\Z",[{parts,2}]))), <<"a :">> = iolist_to_binary(join(re:split("a b","b\\Z",[]))), <<"a ">> = iolist_to_binary(join(re:split("a b","b\\Z",[trim]))), <<"a :">> = iolist_to_binary(join(re:split("a b","b\\Z",[{parts,2}]))), <<"a :">> = iolist_to_binary(join(re:split("a b","b\\Z",[]))), <<"a ">> = iolist_to_binary(join(re:split("a b","b\\z",[trim]))), <<"a :">> = iolist_to_binary(join(re:split("a b","b\\z",[{parts,2}]))), <<"a :">> = iolist_to_binary(join(re:split("a b","b\\z",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","b\\z",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","b\\z",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","b\\z",[]))), <<"">> = iolist_to_binary(join(re:split("a","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"">> = iolist_to_binary(join(re:split("abc","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("abc","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("abc","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"">> = iolist_to_binary(join(re:split("a-b","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a-b","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a-b","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"">> = iolist_to_binary(join(re:split("0-9","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("0-9","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("0-9","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"">> = iolist_to_binary(join(re:split("a.b","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a.b","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a.b","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"">> = iolist_to_binary(join(re:split("5.6.7","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("5.6.7","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("5.6.7","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"">> = iolist_to_binary(join(re:split("the.quick.brown.fox","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("the.quick.brown.fox","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("the.quick.brown.fox","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"">> = iolist_to_binary(join(re:split("a100.b200.300c","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a100.b200.300c","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a100.b200.300c","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"">> = iolist_to_binary(join(re:split("12-ab.1245","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("12-ab.1245","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("12-ab.1245","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"">> = iolist_to_binary(join(re:split("","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"">> = iolist_to_binary(join(re:split("","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"">> = iolist_to_binary(join(re:split("","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<".a">> = iolist_to_binary(join(re:split(".a","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<".a">> = iolist_to_binary(join(re:split(".a","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<".a">> = iolist_to_binary(join(re:split(".a","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"-a">> = iolist_to_binary(join(re:split("-a","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"-a">> = iolist_to_binary(join(re:split("-a","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"-a">> = iolist_to_binary(join(re:split("-a","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"a-">> = iolist_to_binary(join(re:split("a-","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"a-">> = iolist_to_binary(join(re:split("a-","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"a-">> = iolist_to_binary(join(re:split("a-","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"a.">> = iolist_to_binary(join(re:split("a.","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"a.">> = iolist_to_binary(join(re:split("a.","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"a.">> = iolist_to_binary(join(re:split("a.","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"a_b">> = iolist_to_binary(join(re:split("a_b","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"a_b">> = iolist_to_binary(join(re:split("a_b","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"a_b">> = iolist_to_binary(join(re:split("a_b","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"a.-">> = iolist_to_binary(join(re:split("a.-","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"a.-">> = iolist_to_binary(join(re:split("a.-","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"a.-">> = iolist_to_binary(join(re:split("a.-","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"a..">> = iolist_to_binary(join(re:split("a..","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"a..">> = iolist_to_binary(join(re:split("a..","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"a..">> = iolist_to_binary(join(re:split("a..","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"ab..bc">> = iolist_to_binary(join(re:split("ab..bc","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"ab..bc">> = iolist_to_binary(join(re:split("ab..bc","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"ab..bc">> = iolist_to_binary(join(re:split("ab..bc","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"the.quick.brown.fox-">> = iolist_to_binary(join(re:split("the.quick.brown.fox-","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"the.quick.brown.fox-">> = iolist_to_binary(join(re:split("the.quick.brown.fox-","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"the.quick.brown.fox-">> = iolist_to_binary(join(re:split("the.quick.brown.fox-","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"the.quick.brown.fox.">> = iolist_to_binary(join(re:split("the.quick.brown.fox.","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"the.quick.brown.fox.">> = iolist_to_binary(join(re:split("the.quick.brown.fox.","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"the.quick.brown.fox.">> = iolist_to_binary(join(re:split("the.quick.brown.fox.","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"the.quick.brown.fox_">> = iolist_to_binary(join(re:split("the.quick.brown.fox_","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"the.quick.brown.fox_">> = iolist_to_binary(join(re:split("the.quick.brown.fox_","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"the.quick.brown.fox_">> = iolist_to_binary(join(re:split("the.quick.brown.fox_","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<"the.quick.brown.fox+">> = iolist_to_binary(join(re:split("the.quick.brown.fox+","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[trim]))), <<"the.quick.brown.fox+">> = iolist_to_binary(join(re:split("the.quick.brown.fox+","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[{parts, 2}]))), <<"the.quick.brown.fox+">> = iolist_to_binary(join(re:split("the.quick.brown.fox+","^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9-]*[^\\W_])?)+$",[]))), <<":abcd">> = iolist_to_binary(join(re:split("alphabetabcd","(?>.*)(?<=(abcd|wxyz))",[trim]))), <<":abcd:">> = iolist_to_binary(join(re:split("alphabetabcd","(?>.*)(?<=(abcd|wxyz))",[{parts, 2}]))), <<":abcd:">> = iolist_to_binary(join(re:split("alphabetabcd","(?>.*)(?<=(abcd|wxyz))",[]))), <<":wxyz">> = iolist_to_binary(join(re:split("endingwxyz","(?>.*)(?<=(abcd|wxyz))",[trim]))), <<":wxyz:">> = iolist_to_binary(join(re:split("endingwxyz","(?>.*)(?<=(abcd|wxyz))",[{parts, 2}]))), <<":wxyz:">> = iolist_to_binary(join(re:split("endingwxyz","(?>.*)(?<=(abcd|wxyz))",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?>.*)(?<=(abcd|wxyz))",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?>.*)(?<=(abcd|wxyz))",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?>.*)(?<=(abcd|wxyz))",[]))), <<"a rather long string that doesn't end with one of them">> = iolist_to_binary(join(re:split("a rather long string that doesn't end with one of them","(?>.*)(?<=(abcd|wxyz))",[trim]))), <<"a rather long string that doesn't end with one of them">> = iolist_to_binary(join(re:split("a rather long string that doesn't end with one of them","(?>.*)(?<=(abcd|wxyz))",[{parts, 2}]))), <<"a rather long string that doesn't end with one of them">> = iolist_to_binary(join(re:split("a rather long string that doesn't end with one of them","(?>.*)(?<=(abcd|wxyz))",[]))), <<"">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark otherword","word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword",[trim]))), <<":">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark otherword","word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark otherword","word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword",[]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark","word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword",[trim]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark","word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword",[{parts, 2}]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark","word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword",[]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope","word (?>[a-zA-Z0-9]+ ){0,30}otherword",[trim]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope","word (?>[a-zA-Z0-9]+ ){0,30}otherword",[{parts, 2}]))), <<"word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope">> = iolist_to_binary(join(re:split("word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope","word (?>[a-zA-Z0-9]+ ){0,30}otherword",[]))), <<"999">> = iolist_to_binary(join(re:split("999foo","(?<=\\d{3}(?!999))foo",[trim]))), <<"999:">> = iolist_to_binary(join(re:split("999foo","(?<=\\d{3}(?!999))foo",[{parts, 2}]))), <<"999:">> = iolist_to_binary(join(re:split("999foo","(?<=\\d{3}(?!999))foo",[]))), <<"123999">> = iolist_to_binary(join(re:split("123999foo","(?<=\\d{3}(?!999))foo",[trim]))), <<"123999:">> = iolist_to_binary(join(re:split("123999foo","(?<=\\d{3}(?!999))foo",[{parts, 2}]))), <<"123999:">> = iolist_to_binary(join(re:split("123999foo","(?<=\\d{3}(?!999))foo",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=\\d{3}(?!999))foo",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=\\d{3}(?!999))foo",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=\\d{3}(?!999))foo",[]))), <<"123abcfoo">> = iolist_to_binary(join(re:split("123abcfoo","(?<=\\d{3}(?!999))foo",[trim]))), <<"123abcfoo">> = iolist_to_binary(join(re:split("123abcfoo","(?<=\\d{3}(?!999))foo",[{parts, 2}]))), <<"123abcfoo">> = iolist_to_binary(join(re:split("123abcfoo","(?<=\\d{3}(?!999))foo",[]))), <<"999">> = iolist_to_binary(join(re:split("999foo","(?<=(?!...999)\\d{3})foo",[trim]))), <<"999:">> = iolist_to_binary(join(re:split("999foo","(?<=(?!...999)\\d{3})foo",[{parts, 2}]))), <<"999:">> = iolist_to_binary(join(re:split("999foo","(?<=(?!...999)\\d{3})foo",[]))), <<"123999">> = iolist_to_binary(join(re:split("123999foo","(?<=(?!...999)\\d{3})foo",[trim]))), <<"123999:">> = iolist_to_binary(join(re:split("123999foo","(?<=(?!...999)\\d{3})foo",[{parts, 2}]))), <<"123999:">> = iolist_to_binary(join(re:split("123999foo","(?<=(?!...999)\\d{3})foo",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=(?!...999)\\d{3})foo",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=(?!...999)\\d{3})foo",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=(?!...999)\\d{3})foo",[]))), <<"123abcfoo">> = iolist_to_binary(join(re:split("123abcfoo","(?<=(?!...999)\\d{3})foo",[trim]))), <<"123abcfoo">> = iolist_to_binary(join(re:split("123abcfoo","(?<=(?!...999)\\d{3})foo",[{parts, 2}]))), <<"123abcfoo">> = iolist_to_binary(join(re:split("123abcfoo","(?<=(?!...999)\\d{3})foo",[]))), <<"123abc">> = iolist_to_binary(join(re:split("123abcfoo","(?<=\\d{3}(?!999)...)foo",[trim]))), <<"123abc:">> = iolist_to_binary(join(re:split("123abcfoo","(?<=\\d{3}(?!999)...)foo",[{parts, 2}]))), <<"123abc:">> = iolist_to_binary(join(re:split("123abcfoo","(?<=\\d{3}(?!999)...)foo",[]))), <<"123456">> = iolist_to_binary(join(re:split("123456foo","(?<=\\d{3}(?!999)...)foo",[trim]))), <<"123456:">> = iolist_to_binary(join(re:split("123456foo","(?<=\\d{3}(?!999)...)foo",[{parts, 2}]))), <<"123456:">> = iolist_to_binary(join(re:split("123456foo","(?<=\\d{3}(?!999)...)foo",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=\\d{3}(?!999)...)foo",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=\\d{3}(?!999)...)foo",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?<=\\d{3}(?!999)...)foo",[]))), <<"123999foo">> = iolist_to_binary(join(re:split("123999foo","(?<=\\d{3}(?!999)...)foo",[trim]))), <<"123999foo">> = iolist_to_binary(join(re:split("123999foo","(?<=\\d{3}(?!999)...)foo",[{parts, 2}]))), <<"123999foo">> = iolist_to_binary(join(re:split("123999foo","(?<=\\d{3}(?!999)...)foo",[]))), ok. run32() -> <<"123abc">> = iolist_to_binary(join(re:split("123abcfoo","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("123abcfoo","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("123abcfoo","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("123456foo","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("123456foo","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("123456foo","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("*** Failers","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("*** Failers","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("*** Failers","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("123999foo","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("123999foo","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("123999foo","(?<=\\d{3}...)(?> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("> = iolist_to_binary(join(re:split("\\s*)=(?>\\s*) # find > = iolist_to_binary(join(re:split("\\s*)=(?>\\s*) # find > = iolist_to_binary(join(re:split("\\s*)=(?>\\s*) # find > = iolist_to_binary(join(re:split("\\s*)=(?>\\s*) # find > = iolist_to_binary(join(re:split("\\s*)=(?>\\s*) # find > = iolist_to_binary(join(re:split("\\s*)=(?>\\s*) # find > = iolist_to_binary(join(re:split("\\s*)=(?>\\s*) # find > = iolist_to_binary(join(re:split("\\s*)=(?>\\s*) # find > = iolist_to_binary(join(re:split("\\s*)=(?>\\s*) # find > = iolist_to_binary(join(re:split("ZABCDEFG","((Z)+|A)*",[trim]))), <<":A:Z:BCDEFG">> = iolist_to_binary(join(re:split("ZABCDEFG","((Z)+|A)*",[{parts, 2}]))), <<":A:Z:B:::C:::D:::E:::F:::G:::">> = iolist_to_binary(join(re:split("ZABCDEFG","((Z)+|A)*",[]))), <<":A::B:::C:::D:::E:::F:::G">> = iolist_to_binary(join(re:split("ZABCDEFG","(Z()|A)*",[trim]))), <<":A::BCDEFG">> = iolist_to_binary(join(re:split("ZABCDEFG","(Z()|A)*",[{parts, 2}]))), <<":A::B:::C:::D:::E:::F:::G:::">> = iolist_to_binary(join(re:split("ZABCDEFG","(Z()|A)*",[]))), <<":A:::B::::C::::D::::E::::F::::G">> = iolist_to_binary(join(re:split("ZABCDEFG","(Z(())|A)*",[trim]))), <<":A:::BCDEFG">> = iolist_to_binary(join(re:split("ZABCDEFG","(Z(())|A)*",[{parts, 2}]))), <<":A:::B::::C::::D::::E::::F::::G::::">> = iolist_to_binary(join(re:split("ZABCDEFG","(Z(())|A)*",[]))), <<":A:B::C::D::E::F::G">> = iolist_to_binary(join(re:split("ZABCDEFG","((?>Z)+|A)*",[trim]))), <<":A:BCDEFG">> = iolist_to_binary(join(re:split("ZABCDEFG","((?>Z)+|A)*",[{parts, 2}]))), <<":A:B::C::D::E::F::G::">> = iolist_to_binary(join(re:split("ZABCDEFG","((?>Z)+|A)*",[]))), <<"Z::::B::C::D::E::F::G">> = iolist_to_binary(join(re:split("ZABCDEFG","((?>)+|A)*",[trim]))), <<"Z::ABCDEFG">> = iolist_to_binary(join(re:split("ZABCDEFG","((?>)+|A)*",[{parts, 2}]))), <<"Z::::B::C::D::E::F::G::">> = iolist_to_binary(join(re:split("ZABCDEFG","((?>)+|A)*",[]))), <<":b:b:b">> = iolist_to_binary(join(re:split("abbab","a*",[trim]))), <<":bbab">> = iolist_to_binary(join(re:split("abbab","a*",[{parts, 2}]))), <<":b:b:b:">> = iolist_to_binary(join(re:split("abbab","a*",[]))), <<":bcde">> = iolist_to_binary(join(re:split("abcde","^[\\d-a]",[trim]))), <<":bcde">> = iolist_to_binary(join(re:split("abcde","^[\\d-a]",[{parts, 2}]))), <<":bcde">> = iolist_to_binary(join(re:split("abcde","^[\\d-a]",[]))), <<":things">> = iolist_to_binary(join(re:split("-things","^[\\d-a]",[trim]))), <<":things">> = iolist_to_binary(join(re:split("-things","^[\\d-a]",[{parts, 2}]))), <<":things">> = iolist_to_binary(join(re:split("-things","^[\\d-a]",[]))), <<":digit">> = iolist_to_binary(join(re:split("0digit","^[\\d-a]",[trim]))), <<":digit">> = iolist_to_binary(join(re:split("0digit","^[\\d-a]",[{parts, 2}]))), <<":digit">> = iolist_to_binary(join(re:split("0digit","^[\\d-a]",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[\\d-a]",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[\\d-a]",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^[\\d-a]",[]))), <<"bcdef">> = iolist_to_binary(join(re:split("bcdef","^[\\d-a]",[trim]))), <<"bcdef">> = iolist_to_binary(join(re:split("bcdef","^[\\d-a]",[{parts, 2}]))), <<"bcdef">> = iolist_to_binary(join(re:split("bcdef","^[\\d-a]",[]))), <<">:<">> = iolist_to_binary(join(re:split("> <","[[:space:]]+",[trim]))), <<">:<">> = iolist_to_binary(join(re:split("> <","[[:space:]]+",[{parts,2}]))), <<">:<">> = iolist_to_binary(join(re:split("> <","[[:space:]]+",[]))), <<">: <">> = iolist_to_binary(join(re:split("> <","[[:blank:]]+",[trim]))), <<">: <">> = iolist_to_binary(join(re:split("> <","[[:blank:]]+",[{parts,2}]))), <<">: <">> = iolist_to_binary(join(re:split("> <","[[:blank:]]+",[]))), <<">:<">> = iolist_to_binary(join(re:split("> <","[\\s]+",[trim]))), <<">:<">> = iolist_to_binary(join(re:split("> <","[\\s]+",[{parts,2}]))), <<">:<">> = iolist_to_binary(join(re:split("> <","[\\s]+",[]))), <<">:<">> = iolist_to_binary(join(re:split("> <","\\s+",[trim]))), <<">:<">> = iolist_to_binary(join(re:split("> <","\\s+",[{parts,2}]))), <<">:<">> = iolist_to_binary(join(re:split("> <","\\s+",[]))), <<"">> = iolist_to_binary(join(re:split("ab","a b",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("ab","a b",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab","a b",[extended]))), <<"a :b">> = iolist_to_binary(join(re:split("a xb","(?!\\A)x",[multiline,trim]))), <<"a :b">> = iolist_to_binary(join(re:split("a xb","(?!\\A)x",[multiline,{parts,2}]))), <<"a :b">> = iolist_to_binary(join(re:split("a xb","(?!\\A)x",[multiline]))), <<"a xb">> = iolist_to_binary(join(re:split("a xb","(?!^)x",[multiline,trim]))), <<"a xb">> = iolist_to_binary(join(re:split("a xb","(?!^)x",[multiline,{parts,2}]))), <<"a xb">> = iolist_to_binary(join(re:split("a xb","(?!^)x",[multiline]))), <<"">> = iolist_to_binary(join(re:split("abcabcabc","abc\\Qabc\\Eabc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abcabcabc","abc\\Qabc\\Eabc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abcabcabc","abc\\Qabc\\Eabc",[]))), <<"">> = iolist_to_binary(join(re:split("abc(*+|abc","abc\\Q(*+|\\Eabc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc(*+|abc","abc\\Q(*+|\\Eabc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc(*+|abc","abc\\Q(*+|\\Eabc",[]))), ok. run33() -> <<"">> = iolist_to_binary(join(re:split("abc abcabc"," abc\\Q abc\\Eabc",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("abc abcabc"," abc\\Q abc\\Eabc",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc abcabc"," abc\\Q abc\\Eabc",[extended]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers"," abc\\Q abc\\Eabc",[extended, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers"," abc\\Q abc\\Eabc",[extended, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers"," abc\\Q abc\\Eabc",[extended]))), <<"abcabcabc">> = iolist_to_binary(join(re:split("abcabcabc"," abc\\Q abc\\Eabc",[extended, trim]))), <<"abcabcabc">> = iolist_to_binary(join(re:split("abcabcabc"," abc\\Q abc\\Eabc",[extended, {parts, 2}]))), <<"abcabcabc">> = iolist_to_binary(join(re:split("abcabcabc"," abc\\Q abc\\Eabc",[extended]))), <<"">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal\\E",[extended,trim]))), <<":">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal\\E",[extended,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal\\E",[extended]))), <<"">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal",[extended,trim]))), <<":">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal",[extended,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal",[extended]))), <<"">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal\\E #more comment ",[extended,trim]))), <<":">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal\\E #more comment ",[extended,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal\\E #more comment ",[extended]))), <<"">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal\\E #more comment",[extended,trim]))), <<":">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal\\E #more comment",[extended,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("abc#not comment literal","abc#comment \\Q#not comment literal\\E #more comment",[extended]))), <<"">> = iolist_to_binary(join(re:split("abc\\$xyz","\\Qabc\\$xyz\\E",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc\\$xyz","\\Qabc\\$xyz\\E",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc\\$xyz","\\Qabc\\$xyz\\E",[]))), <<"">> = iolist_to_binary(join(re:split("abc$xyz","\\Qabc\\E\\$\\Qxyz\\E",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc$xyz","\\Qabc\\E\\$\\Qxyz\\E",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc$xyz","\\Qabc\\E\\$\\Qxyz\\E",[]))), <<"">> = iolist_to_binary(join(re:split("abc","\\Aabc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","\\Aabc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","\\Aabc",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\Aabc",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\Aabc",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\Aabc",[]))), <<"xyzabc">> = iolist_to_binary(join(re:split("xyzabc","\\Aabc",[trim]))), <<"xyzabc">> = iolist_to_binary(join(re:split("xyzabc","\\Aabc",[{parts, 2}]))), <<"xyzabc">> = iolist_to_binary(join(re:split("xyzabc","\\Aabc",[]))), <<":abc2xyzabc3">> = iolist_to_binary(join(re:split("abc1abc2xyzabc3","\\Aabc.",[trim]))), <<":abc2xyzabc3">> = iolist_to_binary(join(re:split("abc1abc2xyzabc3","\\Aabc.",[{parts, 2}]))), <<":abc2xyzabc3">> = iolist_to_binary(join(re:split("abc1abc2xyzabc3","\\Aabc.",[]))), <<"::xyz">> = iolist_to_binary(join(re:split("abc1abc2xyzabc3","abc.",[trim]))), <<":abc2xyzabc3">> = iolist_to_binary(join(re:split("abc1abc2xyzabc3","abc.",[{parts, 2}]))), <<"::xyz:">> = iolist_to_binary(join(re:split("abc1abc2xyzabc3","abc.",[]))), <<"X:Y">> = iolist_to_binary(join(re:split("XabcdY","a(?x: b c )d",[trim]))), <<"X:Y">> = iolist_to_binary(join(re:split("XabcdY","a(?x: b c )d",[{parts, 2}]))), <<"X:Y">> = iolist_to_binary(join(re:split("XabcdY","a(?x: b c )d",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?x: b c )d",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?x: b c )d",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","a(?x: b c )d",[]))), <<"Xa b c d Y">> = iolist_to_binary(join(re:split("Xa b c d Y","a(?x: b c )d",[trim]))), <<"Xa b c d Y">> = iolist_to_binary(join(re:split("Xa b c d Y","a(?x: b c )d",[{parts, 2}]))), <<"Xa b c d Y">> = iolist_to_binary(join(re:split("Xa b c d Y","a(?x: b c )d",[]))), <<"X:abc:Y">> = iolist_to_binary(join(re:split("XabcY","((?x)x y z | a b c)",[trim]))), <<"X:abc:Y">> = iolist_to_binary(join(re:split("XabcY","((?x)x y z | a b c)",[{parts, 2}]))), <<"X:abc:Y">> = iolist_to_binary(join(re:split("XabcY","((?x)x y z | a b c)",[]))), <<"A:xyz:B">> = iolist_to_binary(join(re:split("AxyzB","((?x)x y z | a b c)",[trim]))), <<"A:xyz:B">> = iolist_to_binary(join(re:split("AxyzB","((?x)x y z | a b c)",[{parts, 2}]))), <<"A:xyz:B">> = iolist_to_binary(join(re:split("AxyzB","((?x)x y z | a b c)",[]))), <<"X:Y">> = iolist_to_binary(join(re:split("XabCY","(?i)AB(?-i)C",[trim]))), <<"X:Y">> = iolist_to_binary(join(re:split("XabCY","(?i)AB(?-i)C",[{parts, 2}]))), <<"X:Y">> = iolist_to_binary(join(re:split("XabCY","(?i)AB(?-i)C",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?i)AB(?-i)C",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?i)AB(?-i)C",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(?i)AB(?-i)C",[]))), <<"XabcY">> = iolist_to_binary(join(re:split("XabcY","(?i)AB(?-i)C",[trim]))), <<"XabcY">> = iolist_to_binary(join(re:split("XabcY","(?i)AB(?-i)C",[{parts, 2}]))), <<"XabcY">> = iolist_to_binary(join(re:split("XabcY","(?i)AB(?-i)C",[]))), <<":abC">> = iolist_to_binary(join(re:split("abCE","((?i)AB(?-i)C|D)E",[trim]))), <<":abC:">> = iolist_to_binary(join(re:split("abCE","((?i)AB(?-i)C|D)E",[{parts, 2}]))), <<":abC:">> = iolist_to_binary(join(re:split("abCE","((?i)AB(?-i)C|D)E",[]))), <<":D">> = iolist_to_binary(join(re:split("DE","((?i)AB(?-i)C|D)E",[trim]))), <<":D:">> = iolist_to_binary(join(re:split("DE","((?i)AB(?-i)C|D)E",[{parts, 2}]))), <<":D:">> = iolist_to_binary(join(re:split("DE","((?i)AB(?-i)C|D)E",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?i)AB(?-i)C|D)E",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?i)AB(?-i)C|D)E",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((?i)AB(?-i)C|D)E",[]))), <<"abcE">> = iolist_to_binary(join(re:split("abcE","((?i)AB(?-i)C|D)E",[trim]))), <<"abcE">> = iolist_to_binary(join(re:split("abcE","((?i)AB(?-i)C|D)E",[{parts, 2}]))), <<"abcE">> = iolist_to_binary(join(re:split("abcE","((?i)AB(?-i)C|D)E",[]))), <<"abCe">> = iolist_to_binary(join(re:split("abCe","((?i)AB(?-i)C|D)E",[trim]))), <<"abCe">> = iolist_to_binary(join(re:split("abCe","((?i)AB(?-i)C|D)E",[{parts, 2}]))), <<"abCe">> = iolist_to_binary(join(re:split("abCe","((?i)AB(?-i)C|D)E",[]))), <<"dE">> = iolist_to_binary(join(re:split("dE","((?i)AB(?-i)C|D)E",[trim]))), <<"dE">> = iolist_to_binary(join(re:split("dE","((?i)AB(?-i)C|D)E",[{parts, 2}]))), <<"dE">> = iolist_to_binary(join(re:split("dE","((?i)AB(?-i)C|D)E",[]))), <<"De">> = iolist_to_binary(join(re:split("De","((?i)AB(?-i)C|D)E",[trim]))), <<"De">> = iolist_to_binary(join(re:split("De","((?i)AB(?-i)C|D)E",[{parts, 2}]))), <<"De">> = iolist_to_binary(join(re:split("De","((?i)AB(?-i)C|D)E",[]))), <<":abc">> = iolist_to_binary(join(re:split("abc123abc","(.*)\\d+\\1",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abc123abc","(.*)\\d+\\1",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abc123abc","(.*)\\d+\\1",[]))), <<"a:bc">> = iolist_to_binary(join(re:split("abc123bc","(.*)\\d+\\1",[trim]))), <<"a:bc:">> = iolist_to_binary(join(re:split("abc123bc","(.*)\\d+\\1",[{parts, 2}]))), <<"a:bc:">> = iolist_to_binary(join(re:split("abc123bc","(.*)\\d+\\1",[]))), <<":abc">> = iolist_to_binary(join(re:split("abc123abc","(.*)\\d+\\1",[dotall, trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abc123abc","(.*)\\d+\\1",[dotall, {parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abc123abc","(.*)\\d+\\1",[dotall]))), <<"a:bc">> = iolist_to_binary(join(re:split("abc123bc","(.*)\\d+\\1",[dotall, trim]))), <<"a:bc:">> = iolist_to_binary(join(re:split("abc123bc","(.*)\\d+\\1",[dotall, {parts, 2}]))), <<"a:bc:">> = iolist_to_binary(join(re:split("abc123bc","(.*)\\d+\\1",[dotall]))), <<":abc:abc">> = iolist_to_binary(join(re:split("abc123abc","((.*))\\d+\\1",[trim]))), <<":abc:abc:">> = iolist_to_binary(join(re:split("abc123abc","((.*))\\d+\\1",[{parts, 2}]))), <<":abc:abc:">> = iolist_to_binary(join(re:split("abc123abc","((.*))\\d+\\1",[]))), <<"a:bc:bc">> = iolist_to_binary(join(re:split("abc123bc","((.*))\\d+\\1",[trim]))), <<"a:bc:bc:">> = iolist_to_binary(join(re:split("abc123bc","((.*))\\d+\\1",[{parts, 2}]))), <<"a:bc:bc:">> = iolist_to_binary(join(re:split("abc123bc","((.*))\\d+\\1",[]))), <<"">> = iolist_to_binary(join(re:split("a123::a123","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"::">> = iolist_to_binary(join(re:split("a123::a123","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"::">> = iolist_to_binary(join(re:split("a123::a123","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"">> = iolist_to_binary(join(re:split("a123:b342::abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"::">> = iolist_to_binary(join(re:split("a123:b342::abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"::">> = iolist_to_binary(join(re:split("a123:b342::abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"">> = iolist_to_binary(join(re:split("a123:b342::324e:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"::">> = iolist_to_binary(join(re:split("a123:b342::324e:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"::">> = iolist_to_binary(join(re:split("a123:b342::324e:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"">> = iolist_to_binary(join(re:split("a123:ddde:b342::324e:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"::">> = iolist_to_binary(join(re:split("a123:ddde:b342::324e:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"::">> = iolist_to_binary(join(re:split("a123:ddde:b342::324e:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"">> = iolist_to_binary(join(re:split("a123:ddde:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"::">> = iolist_to_binary(join(re:split("a123:ddde:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"::">> = iolist_to_binary(join(re:split("a123:ddde:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"">> = iolist_to_binary(join(re:split("a123:ddde:9999:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"::">> = iolist_to_binary(join(re:split("a123:ddde:9999:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"::">> = iolist_to_binary(join(re:split("a123:ddde:9999:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"1:2:3:4:5:6:7:8">> = iolist_to_binary(join(re:split("1:2:3:4:5:6:7:8","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"1:2:3:4:5:6:7:8">> = iolist_to_binary(join(re:split("1:2:3:4:5:6:7:8","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"1:2:3:4:5:6:7:8">> = iolist_to_binary(join(re:split("1:2:3:4:5:6:7:8","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"a123:bce:ddde:9999:b342::324e:dcba:abcd">> = iolist_to_binary(join(re:split("a123:bce:ddde:9999:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"a123:bce:ddde:9999:b342::324e:dcba:abcd">> = iolist_to_binary(join(re:split("a123:bce:ddde:9999:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"a123:bce:ddde:9999:b342::324e:dcba:abcd">> = iolist_to_binary(join(re:split("a123:bce:ddde:9999:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"a123::9999:b342::324e:dcba:abcd">> = iolist_to_binary(join(re:split("a123::9999:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"a123::9999:b342::324e:dcba:abcd">> = iolist_to_binary(join(re:split("a123::9999:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"a123::9999:b342::324e:dcba:abcd">> = iolist_to_binary(join(re:split("a123::9999:b342::324e:dcba:abcd","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"abcde:2:3:4:5:6:7:8">> = iolist_to_binary(join(re:split("abcde:2:3:4:5:6:7:8","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"abcde:2:3:4:5:6:7:8">> = iolist_to_binary(join(re:split("abcde:2:3:4:5:6:7:8","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"abcde:2:3:4:5:6:7:8">> = iolist_to_binary(join(re:split("abcde:2:3:4:5:6:7:8","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"::1">> = iolist_to_binary(join(re:split("::1","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"::1">> = iolist_to_binary(join(re:split("::1","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"::1">> = iolist_to_binary(join(re:split("::1","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"abcd:fee0:123::">> = iolist_to_binary(join(re:split("abcd:fee0:123::","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"abcd:fee0:123::">> = iolist_to_binary(join(re:split("abcd:fee0:123::","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"abcd:fee0:123::">> = iolist_to_binary(join(re:split("abcd:fee0:123::","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<":1">> = iolist_to_binary(join(re:split(":1","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<":1">> = iolist_to_binary(join(re:split(":1","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<":1">> = iolist_to_binary(join(re:split(":1","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"1:">> = iolist_to_binary(join(re:split("1:","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,trim]))), <<"1:">> = iolist_to_binary(join(re:split("1:","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless,{parts,2}]))), <<"1:">> = iolist_to_binary(join(re:split("1:","^(?!:) # colon disallowed at start (?: # start of item (?: [0-9a-f]{1,4} | # 1-4 hex digits or (?(1)0 | () ) ) # if null previously matched, fail; else null : # followed by colon ){1,7} # end item; 1-7 of them required [0-9a-f]{1,4} $ # final hex number at end of string (?(1)|.) # check that there was an empty component ",[extended,caseless]))), <<"">> = iolist_to_binary(join(re:split("z","[z\\Qa-d]\\E]",[trim]))), <<":">> = iolist_to_binary(join(re:split("z","[z\\Qa-d]\\E]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("z","[z\\Qa-d]\\E]",[]))), <<"">> = iolist_to_binary(join(re:split("a","[z\\Qa-d]\\E]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","[z\\Qa-d]\\E]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","[z\\Qa-d]\\E]",[]))), <<"">> = iolist_to_binary(join(re:split("-","[z\\Qa-d]\\E]",[trim]))), <<":">> = iolist_to_binary(join(re:split("-","[z\\Qa-d]\\E]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("-","[z\\Qa-d]\\E]",[]))), <<"">> = iolist_to_binary(join(re:split("d","[z\\Qa-d]\\E]",[trim]))), <<":">> = iolist_to_binary(join(re:split("d","[z\\Qa-d]\\E]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("d","[z\\Qa-d]\\E]",[]))), <<"">> = iolist_to_binary(join(re:split("]","[z\\Qa-d]\\E]",[trim]))), <<":">> = iolist_to_binary(join(re:split("]","[z\\Qa-d]\\E]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("]","[z\\Qa-d]\\E]",[]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[z\\Qa-d]\\E]",[trim]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[z\\Qa-d]\\E]",[{parts, 2}]))), <<"*** F:ilers">> = iolist_to_binary(join(re:split("*** Failers","[z\\Qa-d]\\E]",[]))), <<"b">> = iolist_to_binary(join(re:split("b","[z\\Qa-d]\\E]",[trim]))), <<"b">> = iolist_to_binary(join(re:split("b","[z\\Qa-d]\\E]",[{parts, 2}]))), <<"b">> = iolist_to_binary(join(re:split("b","[z\\Qa-d]\\E]",[]))), ok. run34() -> <<"">> = iolist_to_binary(join(re:split("z","[\\z\\C]",[trim]))), <<":">> = iolist_to_binary(join(re:split("z","[\\z\\C]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("z","[\\z\\C]",[]))), <<"">> = iolist_to_binary(join(re:split("C","[\\z\\C]",[trim]))), <<":">> = iolist_to_binary(join(re:split("C","[\\z\\C]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("C","[\\z\\C]",[]))), <<"">> = iolist_to_binary(join(re:split("M","\\M",[trim]))), <<":">> = iolist_to_binary(join(re:split("M","\\M",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("M","\\M",[]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(a+)*b",[trim]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(a+)*b",[{parts, 2}]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(a+)*b",[]))), <<"„XAZ">> = iolist_to_binary(join(re:split("„XAZXB","(?<=Z)X.",[trim]))), <<"„XAZ:">> = iolist_to_binary(join(re:split("„XAZXB","(?<=Z)X.",[{parts, 2}]))), <<"„XAZ:">> = iolist_to_binary(join(re:split("„XAZXB","(?<=Z)X.",[]))), <<"">> = iolist_to_binary(join(re:split("ab cd defg","ab cd (?x) de fg",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab cd defg","ab cd (?x) de fg",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab cd defg","ab cd (?x) de fg",[]))), <<"">> = iolist_to_binary(join(re:split("ab cddefg","ab cd(?x) de fg",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab cddefg","ab cd(?x) de fg",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab cddefg","ab cd(?x) de fg",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","ab cd(?x) de fg",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","ab cd(?x) de fg",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","ab cd(?x) de fg",[]))), <<"abcddefg">> = iolist_to_binary(join(re:split("abcddefg","ab cd(?x) de fg",[trim]))), <<"abcddefg">> = iolist_to_binary(join(re:split("abcddefg","ab cd(?x) de fg",[{parts, 2}]))), <<"abcddefg">> = iolist_to_binary(join(re:split("abcddefg","ab cd(?x) de fg",[]))), <<"foo:bar:X">> = iolist_to_binary(join(re:split("foobarX","(?> = iolist_to_binary(join(re:split("foobarX","(?> = iolist_to_binary(join(re:split("foobarX","(?> = iolist_to_binary(join(re:split("** Failers","(?> = iolist_to_binary(join(re:split("** Failers","(?> = iolist_to_binary(join(re:split("** Failers","(?> = iolist_to_binary(join(re:split("boobarX","(?> = iolist_to_binary(join(re:split("boobarX","(?> = iolist_to_binary(join(re:split("boobarX","(?> = iolist_to_binary(join(re:split("offX","(?> = iolist_to_binary(join(re:split("offX","(?> = iolist_to_binary(join(re:split("offX","(?> = iolist_to_binary(join(re:split("** Failers","(?> = iolist_to_binary(join(re:split("** Failers","(?> = iolist_to_binary(join(re:split("** Failers","(?> = iolist_to_binary(join(re:split("onyX","(?> = iolist_to_binary(join(re:split("onyX","(?> = iolist_to_binary(join(re:split("onyX","(?> = iolist_to_binary(join(re:split("onyX","(?<=[^f])X",[trim]))), <<"ony:">> = iolist_to_binary(join(re:split("onyX","(?<=[^f])X",[{parts, 2}]))), <<"ony:">> = iolist_to_binary(join(re:split("onyX","(?<=[^f])X",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=[^f])X",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=[^f])X",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=[^f])X",[]))), <<"offX">> = iolist_to_binary(join(re:split("offX","(?<=[^f])X",[trim]))), <<"offX">> = iolist_to_binary(join(re:split("offX","(?<=[^f])X",[{parts, 2}]))), <<"offX">> = iolist_to_binary(join(re:split("offX","(?<=[^f])X",[]))), <<"a :b :c">> = iolist_to_binary(join(re:split("a b c","^",[multiline,trim]))), <<"a :b c">> = iolist_to_binary(join(re:split("a b c","^",[multiline,{parts,2}]))), <<"a :b :c">> = iolist_to_binary(join(re:split("a b c","^",[multiline]))), <<"">> = iolist_to_binary(join(re:split("","^",[multiline, trim]))), <<"">> = iolist_to_binary(join(re:split("","^",[multiline, {parts, 2}]))), <<"">> = iolist_to_binary(join(re:split("","^",[multiline]))), <<"A C :C">> = iolist_to_binary(join(re:split("A C C","(?<=C\\n)^",[multiline,trim]))), <<"A C :C">> = iolist_to_binary(join(re:split("A C C","(?<=C\\n)^",[multiline,{parts,2}]))), <<"A C :C">> = iolist_to_binary(join(re:split("A C C","(?<=C\\n)^",[multiline]))), <<":X">> = iolist_to_binary(join(re:split("bXaX","(?:(?(1)a|b)(X))+",[trim]))), <<":X:">> = iolist_to_binary(join(re:split("bXaX","(?:(?(1)a|b)(X))+",[{parts, 2}]))), <<":X:">> = iolist_to_binary(join(re:split("bXaX","(?:(?(1)a|b)(X))+",[]))), <<":Y">> = iolist_to_binary(join(re:split("bXXaYYaY","(?:(?(1)\\1a|b)(X|Y))+",[trim]))), <<":Y:">> = iolist_to_binary(join(re:split("bXXaYYaY","(?:(?(1)\\1a|b)(X|Y))+",[{parts, 2}]))), <<":Y:">> = iolist_to_binary(join(re:split("bXXaYYaY","(?:(?(1)\\1a|b)(X|Y))+",[]))), <<":X:YaXXaX">> = iolist_to_binary(join(re:split("bXYaXXaX","(?:(?(1)\\1a|b)(X|Y))+",[trim]))), <<":X:YaXXaX">> = iolist_to_binary(join(re:split("bXYaXXaX","(?:(?(1)\\1a|b)(X|Y))+",[{parts, 2}]))), <<":X:YaXXaX">> = iolist_to_binary(join(re:split("bXYaXXaX","(?:(?(1)\\1a|b)(X|Y))+",[]))), <<"::::::::::X:XaYYaY">> = iolist_to_binary(join(re:split("bXXaYYaY","()()()()()()()()()(?:(?(10)\\10a|b)(X|Y))+",[trim]))), <<"::::::::::X:XaYYaY">> = iolist_to_binary(join(re:split("bXXaYYaY","()()()()()()()()()(?:(?(10)\\10a|b)(X|Y))+",[{parts, 2}]))), <<"::::::::::X:XaYYaY">> = iolist_to_binary(join(re:split("bXXaYYaY","()()()()()()()()()(?:(?(10)\\10a|b)(X|Y))+",[]))), <<"">> = iolist_to_binary(join(re:split("abc]","[[,abc,]+]",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc]","[[,abc,]+]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc]","[[,abc,]+]",[]))), <<"">> = iolist_to_binary(join(re:split("a,b]","[[,abc,]+]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a,b]","[[,abc,]+]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a,b]","[[,abc,]+]",[]))), <<"">> = iolist_to_binary(join(re:split("[a,b,c]","[[,abc,]+]",[trim]))), <<":">> = iolist_to_binary(join(re:split("[a,b,c]","[[,abc,]+]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("[a,b,c]","[[,abc,]+]",[]))), <<"A:B">> = iolist_to_binary(join(re:split("A B","(?-x: )",[extended, trim]))), <<"A:B">> = iolist_to_binary(join(re:split("A B","(?-x: )",[extended, {parts, 2}]))), <<"A:B">> = iolist_to_binary(join(re:split("A B","(?-x: )",[extended]))), <<"A:B">> = iolist_to_binary(join(re:split("A # B","(?x)(?-x: \\s*#\\s*)",[trim]))), <<"A:B">> = iolist_to_binary(join(re:split("A # B","(?x)(?-x: \\s*#\\s*)",[{parts, 2}]))), <<"A:B">> = iolist_to_binary(join(re:split("A # B","(?x)(?-x: \\s*#\\s*)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?x)(?-x: \\s*#\\s*)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?x)(?-x: \\s*#\\s*)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?x)(?-x: \\s*#\\s*)",[]))), <<"#">> = iolist_to_binary(join(re:split("#","(?x)(?-x: \\s*#\\s*)",[trim]))), <<"#">> = iolist_to_binary(join(re:split("#","(?x)(?-x: \\s*#\\s*)",[{parts, 2}]))), <<"#">> = iolist_to_binary(join(re:split("#","(?x)(?-x: \\s*#\\s*)",[]))), <<"A">> = iolist_to_binary(join(re:split("A #include","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[trim]))), <<"A:">> = iolist_to_binary(join(re:split("A #include","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[{parts, 2}]))), <<"A:">> = iolist_to_binary(join(re:split("A #include","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[]))), <<"A#include">> = iolist_to_binary(join(re:split("A#include","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[trim]))), <<"A#include">> = iolist_to_binary(join(re:split("A#include","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[{parts, 2}]))), <<"A#include">> = iolist_to_binary(join(re:split("A#include","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[]))), <<"A #Include">> = iolist_to_binary(join(re:split("A #Include","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[trim]))), <<"A #Include">> = iolist_to_binary(join(re:split("A #Include","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[{parts, 2}]))), <<"A #Include">> = iolist_to_binary(join(re:split("A #Include","(?x-is)(?:(?-ixs) \\s*#\\s*) include",[]))), ok. run35() -> <<"">> = iolist_to_binary(join(re:split("aaabbbb","a*b*\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabbbb","a*b*\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabbbb","a*b*\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","a*b*\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","a*b*\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","a*b*\\w",[]))), <<"">> = iolist_to_binary(join(re:split("a","a*b*\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","a*b*\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","a*b*\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aaabbbb","a*b?\\w",[trim]))), <<":bb">> = iolist_to_binary(join(re:split("aaabbbb","a*b?\\w",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("aaabbbb","a*b?\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","a*b?\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","a*b?\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","a*b?\\w",[]))), <<"">> = iolist_to_binary(join(re:split("a","a*b?\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","a*b?\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","a*b?\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aaabbbb","a*b{0,4}\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabbbb","a*b{0,4}\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabbbb","a*b{0,4}\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","a*b{0,4}\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","a*b{0,4}\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","a*b{0,4}\\w",[]))), <<"">> = iolist_to_binary(join(re:split("a","a*b{0,4}\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","a*b{0,4}\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","a*b{0,4}\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aaabbbb","a*b{0,}\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaabbbb","a*b{0,}\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaabbbb","a*b{0,}\\w",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","a*b{0,}\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","a*b{0,}\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","a*b{0,}\\w",[]))), <<"">> = iolist_to_binary(join(re:split("a","a*b{0,}\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","a*b{0,}\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","a*b{0,}\\w",[]))), <<"">> = iolist_to_binary(join(re:split("0a","a*\\d*\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("0a","a*\\d*\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("0a","a*\\d*\\w",[]))), <<"">> = iolist_to_binary(join(re:split("a","a*\\d*\\w",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","a*\\d*\\w",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","a*\\d*\\w",[]))), <<"">> = iolist_to_binary(join(re:split("a","a*b *\\w",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("a","a*b *\\w",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","a*b *\\w",[extended]))), <<"">> = iolist_to_binary(join(re:split("a","a*b#comment *\\w",[extended,trim]))), <<":">> = iolist_to_binary(join(re:split("a","a*b#comment *\\w",[extended,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("a","a*b#comment *\\w",[extended]))), <<"">> = iolist_to_binary(join(re:split("a","a* b *\\w",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("a","a* b *\\w",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","a* b *\\w",[extended]))), <<":: pqr">> = iolist_to_binary(join(re:split("abc=xyz\\ pqr","^\\w+=.*(\\\\\\n.*)*",[trim]))), <<":: pqr">> = iolist_to_binary(join(re:split("abc=xyz\\ pqr","^\\w+=.*(\\\\\\n.*)*",[{parts,2}]))), <<":: pqr">> = iolist_to_binary(join(re:split("abc=xyz\\ pqr","^\\w+=.*(\\\\\\n.*)*",[]))), <<":abcd">> = iolist_to_binary(join(re:split("abcd:","(?=(\\w+))\\1:",[trim]))), <<":abcd:">> = iolist_to_binary(join(re:split("abcd:","(?=(\\w+))\\1:",[{parts, 2}]))), <<":abcd:">> = iolist_to_binary(join(re:split("abcd:","(?=(\\w+))\\1:",[]))), <<":abcd">> = iolist_to_binary(join(re:split("abcd:","^(?=(\\w+))\\1:",[trim]))), <<":abcd:">> = iolist_to_binary(join(re:split("abcd:","^(?=(\\w+))\\1:",[{parts, 2}]))), <<":abcd:">> = iolist_to_binary(join(re:split("abcd:","^(?=(\\w+))\\1:",[]))), <<"">> = iolist_to_binary(join(re:split("abc","^\\Eabc",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","^\\Eabc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","^\\Eabc",[]))), <<"">> = iolist_to_binary(join(re:split("a","^[\\Eabc]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","^[\\Eabc]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","^[\\Eabc]",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[\\Eabc]",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[\\Eabc]",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[\\Eabc]",[]))), <<"E">> = iolist_to_binary(join(re:split("E","^[\\Eabc]",[trim]))), <<"E">> = iolist_to_binary(join(re:split("E","^[\\Eabc]",[{parts, 2}]))), <<"E">> = iolist_to_binary(join(re:split("E","^[\\Eabc]",[]))), <<"">> = iolist_to_binary(join(re:split("b","^[a-\\Ec]",[trim]))), <<":">> = iolist_to_binary(join(re:split("b","^[a-\\Ec]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("b","^[a-\\Ec]",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[a-\\Ec]",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[a-\\Ec]",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[a-\\Ec]",[]))), <<"-">> = iolist_to_binary(join(re:split("-","^[a-\\Ec]",[trim]))), <<"-">> = iolist_to_binary(join(re:split("-","^[a-\\Ec]",[{parts, 2}]))), <<"-">> = iolist_to_binary(join(re:split("-","^[a-\\Ec]",[]))), <<"E">> = iolist_to_binary(join(re:split("E","^[a-\\Ec]",[trim]))), <<"E">> = iolist_to_binary(join(re:split("E","^[a-\\Ec]",[{parts, 2}]))), <<"E">> = iolist_to_binary(join(re:split("E","^[a-\\Ec]",[]))), <<"">> = iolist_to_binary(join(re:split("b","^[a\\E\\E-\\Ec]",[trim]))), <<":">> = iolist_to_binary(join(re:split("b","^[a\\E\\E-\\Ec]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("b","^[a\\E\\E-\\Ec]",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[a\\E\\E-\\Ec]",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[a\\E\\E-\\Ec]",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[a\\E\\E-\\Ec]",[]))), <<"-">> = iolist_to_binary(join(re:split("-","^[a\\E\\E-\\Ec]",[trim]))), <<"-">> = iolist_to_binary(join(re:split("-","^[a\\E\\E-\\Ec]",[{parts, 2}]))), <<"-">> = iolist_to_binary(join(re:split("-","^[a\\E\\E-\\Ec]",[]))), <<"E">> = iolist_to_binary(join(re:split("E","^[a\\E\\E-\\Ec]",[trim]))), <<"E">> = iolist_to_binary(join(re:split("E","^[a\\E\\E-\\Ec]",[{parts, 2}]))), <<"E">> = iolist_to_binary(join(re:split("E","^[a\\E\\E-\\Ec]",[]))), <<"">> = iolist_to_binary(join(re:split("b","^[\\E\\Qa\\E-\\Qz\\E]+",[trim]))), <<":">> = iolist_to_binary(join(re:split("b","^[\\E\\Qa\\E-\\Qz\\E]+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("b","^[\\E\\Qa\\E-\\Qz\\E]+",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[\\E\\Qa\\E-\\Qz\\E]+",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[\\E\\Qa\\E-\\Qz\\E]+",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[\\E\\Qa\\E-\\Qz\\E]+",[]))), <<"-">> = iolist_to_binary(join(re:split("-","^[\\E\\Qa\\E-\\Qz\\E]+",[trim]))), <<"-">> = iolist_to_binary(join(re:split("-","^[\\E\\Qa\\E-\\Qz\\E]+",[{parts, 2}]))), <<"-">> = iolist_to_binary(join(re:split("-","^[\\E\\Qa\\E-\\Qz\\E]+",[]))), <<"">> = iolist_to_binary(join(re:split("a","^[a\\Q]bc\\E]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","^[a\\Q]bc\\E]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","^[a\\Q]bc\\E]",[]))), <<"">> = iolist_to_binary(join(re:split("]","^[a\\Q]bc\\E]",[trim]))), <<":">> = iolist_to_binary(join(re:split("]","^[a\\Q]bc\\E]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("]","^[a\\Q]bc\\E]",[]))), <<"">> = iolist_to_binary(join(re:split("c","^[a\\Q]bc\\E]",[trim]))), <<":">> = iolist_to_binary(join(re:split("c","^[a\\Q]bc\\E]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("c","^[a\\Q]bc\\E]",[]))), <<"">> = iolist_to_binary(join(re:split("a","^[a-\\Q\\E]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","^[a-\\Q\\E]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","^[a-\\Q\\E]",[]))), <<"">> = iolist_to_binary(join(re:split("-","^[a-\\Q\\E]",[trim]))), <<":">> = iolist_to_binary(join(re:split("-","^[a-\\Q\\E]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("-","^[a-\\Q\\E]",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaa","^(a()*)*",[trim]))), <<":a::">> = iolist_to_binary(join(re:split("aaaa","^(a()*)*",[{parts, 2}]))), <<":a::">> = iolist_to_binary(join(re:split("aaaa","^(a()*)*",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","^(?:a(?:(?:))*)*",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^(?:a(?:(?:))*)*",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^(?:a(?:(?:))*)*",[]))), ok. run36() -> <<":a">> = iolist_to_binary(join(re:split("aaaa","^(a()+)+",[trim]))), <<":a::">> = iolist_to_binary(join(re:split("aaaa","^(a()+)+",[{parts, 2}]))), <<":a::">> = iolist_to_binary(join(re:split("aaaa","^(a()+)+",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","^(?:a(?:(?:))+)+",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^(?:a(?:(?:))+)+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^(?:a(?:(?:))+)+",[]))), <<":a">> = iolist_to_binary(join(re:split("abbD","(a){0,3}(?(1)b|(c|))*D",[trim]))), <<":a::">> = iolist_to_binary(join(re:split("abbD","(a){0,3}(?(1)b|(c|))*D",[{parts, 2}]))), <<":a::">> = iolist_to_binary(join(re:split("abbD","(a){0,3}(?(1)b|(c|))*D",[]))), <<"">> = iolist_to_binary(join(re:split("ccccD","(a){0,3}(?(1)b|(c|))*D",[trim]))), <<":::">> = iolist_to_binary(join(re:split("ccccD","(a){0,3}(?(1)b|(c|))*D",[{parts, 2}]))), <<":::">> = iolist_to_binary(join(re:split("ccccD","(a){0,3}(?(1)b|(c|))*D",[]))), <<"">> = iolist_to_binary(join(re:split("D","(a){0,3}(?(1)b|(c|))*D",[trim]))), <<":::">> = iolist_to_binary(join(re:split("D","(a){0,3}(?(1)b|(c|))*D",[{parts, 2}]))), <<":::">> = iolist_to_binary(join(re:split("D","(a){0,3}(?(1)b|(c|))*D",[]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(a|)*\\d",[trim]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(a|)*\\d",[{parts, 2}]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(a|)*\\d",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4","(a|)*\\d",[trim]))), <<"::">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4","(a|)*\\d",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4","(a|)*\\d",[]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(?>a|)*\\d",[trim]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(?>a|)*\\d",[{parts, 2}]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(?>a|)*\\d",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4","(?>a|)*\\d",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4","(?>a|)*\\d",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4","(?>a|)*\\d",[]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(?:a|)*\\d",[trim]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(?:a|)*\\d",[{parts, 2}]))), <<"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","(?:a|)*\\d",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4","(?:a|)*\\d",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4","(?:a|)*\\d",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4","(?:a|)*\\d",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","\\Z",[trim]))), <<"abc:">> = iolist_to_binary(join(re:split("abc","\\Z",[{parts, 2}]))), <<"abc:">> = iolist_to_binary(join(re:split("abc","\\Z",[]))), <<"">> = iolist_to_binary(join(re:split("abc","^(?s)(?>.*)(?> = iolist_to_binary(join(re:split("abc","^(?s)(?>.*)(?> = iolist_to_binary(join(re:split("abc","^(?s)(?>.*)(?> = iolist_to_binary(join(re:split("abc","^(?s)(?>.*)(?> = iolist_to_binary(join(re:split("abc","^(?s)(?>.*)(?> = iolist_to_binary(join(re:split("abc","^(?s)(?>.*)(?> = iolist_to_binary(join(re:split("abc","^(?![^\\n]*\\n\\z)",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^(?![^\\n]*\\n\\z)",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^(?![^\\n]*\\n\\z)",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^(?![^\\n]*\\n\\z)",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^(?![^\\n]*\\n\\z)",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","^(?![^\\n]*\\n\\z)",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","\\z(?> = iolist_to_binary(join(re:split("abc","\\z(?> = iolist_to_binary(join(re:split("abc","\\z(?> = iolist_to_binary(join(re:split("abc","\\z(?> = iolist_to_binary(join(re:split("abc","\\z(?> = iolist_to_binary(join(re:split("abc","\\z(?> = iolist_to_binary(join(re:split("abcd","(.*(.)?)*",[trim]))), <<":::">> = iolist_to_binary(join(re:split("abcd","(.*(.)?)*",[{parts, 2}]))), <<":::">> = iolist_to_binary(join(re:split("abcd","(.*(.)?)*",[]))), <<"a:::b:::c:::d">> = iolist_to_binary(join(re:split("abcd","( (A | (?(1)0|) )* )",[extended, trim]))), <<"a:::bcd">> = iolist_to_binary(join(re:split("abcd","( (A | (?(1)0|) )* )",[extended, {parts, 2}]))), <<"a:::b:::c:::d:::">> = iolist_to_binary(join(re:split("abcd","( (A | (?(1)0|) )* )",[extended]))), <<"a:::b:::c:::d">> = iolist_to_binary(join(re:split("abcd","( ( (?(1)0|) )* )",[extended, trim]))), <<"a:::bcd">> = iolist_to_binary(join(re:split("abcd","( ( (?(1)0|) )* )",[extended, {parts, 2}]))), <<"a:::b:::c:::d:::">> = iolist_to_binary(join(re:split("abcd","( ( (?(1)0|) )* )",[extended]))), <<"a::b::c::d">> = iolist_to_binary(join(re:split("abcd","( (?(1)0|)* )",[extended, trim]))), <<"a::bcd">> = iolist_to_binary(join(re:split("abcd","( (?(1)0|)* )",[extended, {parts, 2}]))), <<"a::b::c::d::">> = iolist_to_binary(join(re:split("abcd","( (?(1)0|)* )",[extended]))), <<"">> = iolist_to_binary(join(re:split("a]","[[:abcd:xyz]]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a]","[[:abcd:xyz]]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a]","[[:abcd:xyz]]",[]))), <<"">> = iolist_to_binary(join(re:split(":]","[[:abcd:xyz]]",[trim]))), <<":">> = iolist_to_binary(join(re:split(":]","[[:abcd:xyz]]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split(":]","[[:abcd:xyz]]",[]))), <<"">> = iolist_to_binary(join(re:split("a","[abc[:x\\]pqr]",[trim]))), <<":">> = iolist_to_binary(join(re:split("a","[abc[:x\\]pqr]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("a","[abc[:x\\]pqr]",[]))), <<"">> = iolist_to_binary(join(re:split("[","[abc[:x\\]pqr]",[trim]))), <<":">> = iolist_to_binary(join(re:split("[","[abc[:x\\]pqr]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("[","[abc[:x\\]pqr]",[]))), <<"">> = iolist_to_binary(join(re:split(":","[abc[:x\\]pqr]",[trim]))), <<":">> = iolist_to_binary(join(re:split(":","[abc[:x\\]pqr]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split(":","[abc[:x\\]pqr]",[]))), <<"">> = iolist_to_binary(join(re:split("]","[abc[:x\\]pqr]",[trim]))), <<":">> = iolist_to_binary(join(re:split("]","[abc[:x\\]pqr]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("]","[abc[:x\\]pqr]",[]))), <<"">> = iolist_to_binary(join(re:split("p","[abc[:x\\]pqr]",[trim]))), <<":">> = iolist_to_binary(join(re:split("p","[abc[:x\\]pqr]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("p","[abc[:x\\]pqr]",[]))), <<"fooabcfoo">> = iolist_to_binary(join(re:split("fooabcfoo",".*[op][xyz]",[trim]))), <<"fooabcfoo">> = iolist_to_binary(join(re:split("fooabcfoo",".*[op][xyz]",[{parts, 2}]))), <<"fooabcfoo">> = iolist_to_binary(join(re:split("fooabcfoo",".*[op][xyz]",[]))), <<"adc">> = iolist_to_binary(join(re:split("adc","(?(?=.*b)b|^)",[trim]))), <<"adc">> = iolist_to_binary(join(re:split("adc","(?(?=.*b)b|^)",[{parts, 2}]))), <<"adc">> = iolist_to_binary(join(re:split("adc","(?(?=.*b)b|^)",[]))), <<"a:c">> = iolist_to_binary(join(re:split("abc","(?(?=.*b)b|^)",[trim]))), <<"a:c">> = iolist_to_binary(join(re:split("abc","(?(?=.*b)b|^)",[{parts, 2}]))), <<"a:c">> = iolist_to_binary(join(re:split("abc","(?(?=.*b)b|^)",[]))), <<"adc">> = iolist_to_binary(join(re:split("adc","(?(?=^.*b)b|^)",[trim]))), <<"adc">> = iolist_to_binary(join(re:split("adc","(?(?=^.*b)b|^)",[{parts, 2}]))), <<"adc">> = iolist_to_binary(join(re:split("adc","(?(?=^.*b)b|^)",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(?(?=^.*b)b|^)",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(?(?=^.*b)b|^)",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(?(?=^.*b)b|^)",[]))), <<"a:d:c">> = iolist_to_binary(join(re:split("adc","(?(?=.*b)b|^)*",[trim]))), <<"a:dc">> = iolist_to_binary(join(re:split("adc","(?(?=.*b)b|^)*",[{parts, 2}]))), <<"a:d:c:">> = iolist_to_binary(join(re:split("adc","(?(?=.*b)b|^)*",[]))), <<"a:c">> = iolist_to_binary(join(re:split("abc","(?(?=.*b)b|^)*",[trim]))), <<"a:c">> = iolist_to_binary(join(re:split("abc","(?(?=.*b)b|^)*",[{parts, 2}]))), <<"a:c:">> = iolist_to_binary(join(re:split("abc","(?(?=.*b)b|^)*",[]))), ok. run37() -> <<"adc">> = iolist_to_binary(join(re:split("adc","(?(?=.*b)b|^)+",[trim]))), <<"adc">> = iolist_to_binary(join(re:split("adc","(?(?=.*b)b|^)+",[{parts, 2}]))), <<"adc">> = iolist_to_binary(join(re:split("adc","(?(?=.*b)b|^)+",[]))), <<"a:c">> = iolist_to_binary(join(re:split("abc","(?(?=.*b)b|^)+",[trim]))), <<"a:c">> = iolist_to_binary(join(re:split("abc","(?(?=.*b)b|^)+",[{parts, 2}]))), <<"a:c">> = iolist_to_binary(join(re:split("abc","(?(?=.*b)b|^)+",[]))), <<"a:c">> = iolist_to_binary(join(re:split("abc","(?(?=b).*b|^d)",[trim]))), <<"a:c">> = iolist_to_binary(join(re:split("abc","(?(?=b).*b|^d)",[{parts, 2}]))), <<"a:c">> = iolist_to_binary(join(re:split("abc","(?(?=b).*b|^d)",[]))), <<":c">> = iolist_to_binary(join(re:split("abc","(?(?=.*b).*b|^d)",[trim]))), <<":c">> = iolist_to_binary(join(re:split("abc","(?(?=.*b).*b|^d)",[{parts, 2}]))), <<":c">> = iolist_to_binary(join(re:split("abc","(?(?=.*b).*b|^d)",[]))), <<"">> = iolist_to_binary(join(re:split("%ab%","^%((?(?=[a])[^%])|b)*%$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("%ab%","^%((?(?=[a])[^%])|b)*%$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("%ab%","^%((?(?=[a])[^%])|b)*%$",[]))), <<"X:X">> = iolist_to_binary(join(re:split("XabX","(?i)a(?-i)b|c",[trim]))), <<"X:X">> = iolist_to_binary(join(re:split("XabX","(?i)a(?-i)b|c",[{parts, 2}]))), <<"X:X">> = iolist_to_binary(join(re:split("XabX","(?i)a(?-i)b|c",[]))), <<"X:X">> = iolist_to_binary(join(re:split("XAbX","(?i)a(?-i)b|c",[trim]))), <<"X:X">> = iolist_to_binary(join(re:split("XAbX","(?i)a(?-i)b|c",[{parts, 2}]))), <<"X:X">> = iolist_to_binary(join(re:split("XAbX","(?i)a(?-i)b|c",[]))), <<"C:C">> = iolist_to_binary(join(re:split("CcC","(?i)a(?-i)b|c",[trim]))), <<"C:C">> = iolist_to_binary(join(re:split("CcC","(?i)a(?-i)b|c",[{parts, 2}]))), <<"C:C">> = iolist_to_binary(join(re:split("CcC","(?i)a(?-i)b|c",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?i)a(?-i)b|c",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?i)a(?-i)b|c",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?i)a(?-i)b|c",[]))), <<"XABX">> = iolist_to_binary(join(re:split("XABX","(?i)a(?-i)b|c",[trim]))), <<"XABX">> = iolist_to_binary(join(re:split("XABX","(?i)a(?-i)b|c",[{parts, 2}]))), <<"XABX">> = iolist_to_binary(join(re:split("XABX","(?i)a(?-i)b|c",[]))), <<"">> = iolist_to_binary(join(re:split(" ","[\\x00-\\xff\\s]+",[trim]))), <<":">> = iolist_to_binary(join(re:split(" ","[\\x00-\\xff\\s]+",[{parts,2}]))), <<":">> = iolist_to_binary(join(re:split(" ","[\\x00-\\xff\\s]+",[]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1",[caseless, trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1",[caseless, {parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1",[caseless]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1",[trim]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1",[{parts, 2}]))), <<"abc">> = iolist_to_binary(join(re:split("abc","(abc)\\1",[]))), <<":a">> = iolist_to_binary(join(re:split("12abc","[^a]*",[caseless, trim]))), <<":abc">> = iolist_to_binary(join(re:split("12abc","[^a]*",[caseless, {parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("12abc","[^a]*",[caseless]))), <<":A">> = iolist_to_binary(join(re:split("12ABC","[^a]*",[caseless, trim]))), <<":ABC">> = iolist_to_binary(join(re:split("12ABC","[^a]*",[caseless, {parts, 2}]))), <<":A:">> = iolist_to_binary(join(re:split("12ABC","[^a]*",[caseless]))), <<":a">> = iolist_to_binary(join(re:split("12abc","[^a]*+",[caseless, trim]))), <<":abc">> = iolist_to_binary(join(re:split("12abc","[^a]*+",[caseless, {parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("12abc","[^a]*+",[caseless]))), <<":A">> = iolist_to_binary(join(re:split("12ABC","[^a]*+",[caseless, trim]))), <<":ABC">> = iolist_to_binary(join(re:split("12ABC","[^a]*+",[caseless, {parts, 2}]))), <<":A:">> = iolist_to_binary(join(re:split("12ABC","[^a]*+",[caseless]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","[^a]*?X",[caseless, trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","[^a]*?X",[caseless, {parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","[^a]*?X",[caseless]))), <<"12abc">> = iolist_to_binary(join(re:split("12abc","[^a]*?X",[caseless, trim]))), <<"12abc">> = iolist_to_binary(join(re:split("12abc","[^a]*?X",[caseless, {parts, 2}]))), <<"12abc">> = iolist_to_binary(join(re:split("12abc","[^a]*?X",[caseless]))), <<"12ABC">> = iolist_to_binary(join(re:split("12ABC","[^a]*?X",[caseless, trim]))), <<"12ABC">> = iolist_to_binary(join(re:split("12ABC","[^a]*?X",[caseless, {parts, 2}]))), <<"12ABC">> = iolist_to_binary(join(re:split("12ABC","[^a]*?X",[caseless]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","[^a]+?X",[caseless, trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","[^a]+?X",[caseless, {parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","[^a]+?X",[caseless]))), <<"12abc">> = iolist_to_binary(join(re:split("12abc","[^a]+?X",[caseless, trim]))), <<"12abc">> = iolist_to_binary(join(re:split("12abc","[^a]+?X",[caseless, {parts, 2}]))), <<"12abc">> = iolist_to_binary(join(re:split("12abc","[^a]+?X",[caseless]))), <<"12ABC">> = iolist_to_binary(join(re:split("12ABC","[^a]+?X",[caseless, trim]))), <<"12ABC">> = iolist_to_binary(join(re:split("12ABC","[^a]+?X",[caseless, {parts, 2}]))), <<"12ABC">> = iolist_to_binary(join(re:split("12ABC","[^a]+?X",[caseless]))), <<"12a:b">> = iolist_to_binary(join(re:split("12aXbcX","[^a]?X",[caseless, trim]))), <<"12a:bcX">> = iolist_to_binary(join(re:split("12aXbcX","[^a]?X",[caseless, {parts, 2}]))), <<"12a:b:">> = iolist_to_binary(join(re:split("12aXbcX","[^a]?X",[caseless]))), <<"12A:B">> = iolist_to_binary(join(re:split("12AXBCX","[^a]?X",[caseless, trim]))), <<"12A:BCX">> = iolist_to_binary(join(re:split("12AXBCX","[^a]?X",[caseless, {parts, 2}]))), <<"12A:B:">> = iolist_to_binary(join(re:split("12AXBCX","[^a]?X",[caseless]))), <<"B">> = iolist_to_binary(join(re:split("BCX","[^a]?X",[caseless, trim]))), <<"B:">> = iolist_to_binary(join(re:split("BCX","[^a]?X",[caseless, {parts, 2}]))), <<"B:">> = iolist_to_binary(join(re:split("BCX","[^a]?X",[caseless]))), <<"12a:b">> = iolist_to_binary(join(re:split("12aXbcX","[^a]??X",[caseless, trim]))), <<"12a:bcX">> = iolist_to_binary(join(re:split("12aXbcX","[^a]??X",[caseless, {parts, 2}]))), <<"12a:b:">> = iolist_to_binary(join(re:split("12aXbcX","[^a]??X",[caseless]))), <<"12A:B">> = iolist_to_binary(join(re:split("12AXBCX","[^a]??X",[caseless, trim]))), <<"12A:BCX">> = iolist_to_binary(join(re:split("12AXBCX","[^a]??X",[caseless, {parts, 2}]))), <<"12A:B:">> = iolist_to_binary(join(re:split("12AXBCX","[^a]??X",[caseless]))), <<"B">> = iolist_to_binary(join(re:split("BCX","[^a]??X",[caseless, trim]))), <<"B:">> = iolist_to_binary(join(re:split("BCX","[^a]??X",[caseless, {parts, 2}]))), <<"B:">> = iolist_to_binary(join(re:split("BCX","[^a]??X",[caseless]))), <<"12aXb">> = iolist_to_binary(join(re:split("12aXbcX","[^a]?+X",[caseless, trim]))), <<"12aXb:">> = iolist_to_binary(join(re:split("12aXbcX","[^a]?+X",[caseless, {parts, 2}]))), <<"12aXb:">> = iolist_to_binary(join(re:split("12aXbcX","[^a]?+X",[caseless]))), <<"12AXB">> = iolist_to_binary(join(re:split("12AXBCX","[^a]?+X",[caseless, trim]))), <<"12AXB:">> = iolist_to_binary(join(re:split("12AXBCX","[^a]?+X",[caseless, {parts, 2}]))), <<"12AXB:">> = iolist_to_binary(join(re:split("12AXBCX","[^a]?+X",[caseless]))), <<"B">> = iolist_to_binary(join(re:split("BCX","[^a]?+X",[caseless, trim]))), <<"B:">> = iolist_to_binary(join(re:split("BCX","[^a]?+X",[caseless, {parts, 2}]))), <<"B:">> = iolist_to_binary(join(re:split("BCX","[^a]?+X",[caseless]))), <<"a">> = iolist_to_binary(join(re:split("abcdef","[^a]{2,3}",[caseless, trim]))), <<"a:ef">> = iolist_to_binary(join(re:split("abcdef","[^a]{2,3}",[caseless, {parts, 2}]))), <<"a::">> = iolist_to_binary(join(re:split("abcdef","[^a]{2,3}",[caseless]))), <<"A">> = iolist_to_binary(join(re:split("ABCDEF","[^a]{2,3}",[caseless, trim]))), <<"A:EF">> = iolist_to_binary(join(re:split("ABCDEF","[^a]{2,3}",[caseless, {parts, 2}]))), <<"A::">> = iolist_to_binary(join(re:split("ABCDEF","[^a]{2,3}",[caseless]))), <<"a::f">> = iolist_to_binary(join(re:split("abcdef","[^a]{2,3}?",[caseless, trim]))), <<"a:def">> = iolist_to_binary(join(re:split("abcdef","[^a]{2,3}?",[caseless, {parts, 2}]))), <<"a::f">> = iolist_to_binary(join(re:split("abcdef","[^a]{2,3}?",[caseless]))), <<"A::F">> = iolist_to_binary(join(re:split("ABCDEF","[^a]{2,3}?",[caseless, trim]))), <<"A:DEF">> = iolist_to_binary(join(re:split("ABCDEF","[^a]{2,3}?",[caseless, {parts, 2}]))), <<"A::F">> = iolist_to_binary(join(re:split("ABCDEF","[^a]{2,3}?",[caseless]))), <<"a">> = iolist_to_binary(join(re:split("abcdef","[^a]{2,3}+",[caseless, trim]))), <<"a:ef">> = iolist_to_binary(join(re:split("abcdef","[^a]{2,3}+",[caseless, {parts, 2}]))), <<"a::">> = iolist_to_binary(join(re:split("abcdef","[^a]{2,3}+",[caseless]))), <<"A">> = iolist_to_binary(join(re:split("ABCDEF","[^a]{2,3}+",[caseless, trim]))), <<"A:EF">> = iolist_to_binary(join(re:split("ABCDEF","[^a]{2,3}+",[caseless, {parts, 2}]))), <<"A::">> = iolist_to_binary(join(re:split("ABCDEF","[^a]{2,3}+",[caseless]))), <<"">> = iolist_to_binary(join(re:split("Z","((a|)+)+Z",[trim]))), <<":::">> = iolist_to_binary(join(re:split("Z","((a|)+)+Z",[{parts, 2}]))), <<":::">> = iolist_to_binary(join(re:split("Z","((a|)+)+Z",[]))), ok. run38() -> <<"::a">> = iolist_to_binary(join(re:split("ac","(a)b|(a)c",[trim]))), <<"::a:">> = iolist_to_binary(join(re:split("ac","(a)b|(a)c",[{parts, 2}]))), <<"::a:">> = iolist_to_binary(join(re:split("ac","(a)b|(a)c",[]))), <<"::a">> = iolist_to_binary(join(re:split("ac","(?>(a))b|(a)c",[trim]))), <<"::a:">> = iolist_to_binary(join(re:split("ac","(?>(a))b|(a)c",[{parts, 2}]))), <<"::a:">> = iolist_to_binary(join(re:split("ac","(?>(a))b|(a)c",[]))), <<"::a">> = iolist_to_binary(join(re:split("ac","(?=(a))ab|(a)c",[trim]))), <<"::a:">> = iolist_to_binary(join(re:split("ac","(?=(a))ab|(a)c",[{parts, 2}]))), <<"::a:">> = iolist_to_binary(join(re:split("ac","(?=(a))ab|(a)c",[]))), <<":ac::a">> = iolist_to_binary(join(re:split("ac","((?>(a))b|(a)c)",[trim]))), <<":ac::a:">> = iolist_to_binary(join(re:split("ac","((?>(a))b|(a)c)",[{parts, 2}]))), <<":ac::a:">> = iolist_to_binary(join(re:split("ac","((?>(a))b|(a)c)",[]))), <<":ac::a">> = iolist_to_binary(join(re:split("ac","((?>(a))b|(a)c)++",[trim]))), <<":ac::a:">> = iolist_to_binary(join(re:split("ac","((?>(a))b|(a)c)++",[{parts, 2}]))), <<":ac::a:">> = iolist_to_binary(join(re:split("ac","((?>(a))b|(a)c)++",[]))), <<"::a">> = iolist_to_binary(join(re:split("ac","(?:(?>(a))b|(a)c)++",[trim]))), <<"::a:">> = iolist_to_binary(join(re:split("ac","(?:(?>(a))b|(a)c)++",[{parts, 2}]))), <<"::a:">> = iolist_to_binary(join(re:split("ac","(?:(?>(a))b|(a)c)++",[]))), <<"::a:ac">> = iolist_to_binary(join(re:split("ac","(?=(?>(a))b|(a)c)(..)",[trim]))), <<"::a:ac:">> = iolist_to_binary(join(re:split("ac","(?=(?>(a))b|(a)c)(..)",[{parts, 2}]))), <<"::a:ac:">> = iolist_to_binary(join(re:split("ac","(?=(?>(a))b|(a)c)(..)",[]))), <<"::a">> = iolist_to_binary(join(re:split("ac","(?>(?>(a))b|(a)c)",[trim]))), <<"::a:">> = iolist_to_binary(join(re:split("ac","(?>(?>(a))b|(a)c)",[{parts, 2}]))), <<"::a:">> = iolist_to_binary(join(re:split("ac","(?>(?>(a))b|(a)c)",[]))), <<":aaaabaaabaabab:aaa:aabab">> = iolist_to_binary(join(re:split("aaaabaaabaabab","((?>(a+)b)+(aabab))",[trim]))), <<":aaaabaaabaabab:aaa:aabab:">> = iolist_to_binary(join(re:split("aaaabaaabaabab","((?>(a+)b)+(aabab))",[{parts, 2}]))), <<":aaaabaaabaabab:aaa:aabab:">> = iolist_to_binary(join(re:split("aaaabaaabaabab","((?>(a+)b)+(aabab))",[]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","(?>a+|ab)+?c",[trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","(?>a+|ab)+?c",[{parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","(?>a+|ab)+?c",[]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","(?>a+|ab)+c",[trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","(?>a+|ab)+c",[{parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","(?>a+|ab)+c",[]))), <<"">> = iolist_to_binary(join(re:split("aabc","(?:a+|ab)+c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aabc","(?:a+|ab)+c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aabc","(?:a+|ab)+c",[]))), <<":a">> = iolist_to_binary(join(re:split("a","(?(?=(a))a)",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("a","(?(?=(a))a)",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("a","(?(?=(a))a)",[]))), <<":a:b">> = iolist_to_binary(join(re:split("ab","(?(?=(a))a)(b)",[trim]))), <<":a:b:">> = iolist_to_binary(join(re:split("ab","(?(?=(a))a)(b)",[{parts, 2}]))), <<":a:b:">> = iolist_to_binary(join(re:split("ab","(?(?=(a))a)(b)",[]))), <<"aaaabc">> = iolist_to_binary(join(re:split("aaaabc","^(?:a|ab)++c",[trim]))), <<"aaaabc">> = iolist_to_binary(join(re:split("aaaabc","^(?:a|ab)++c",[{parts, 2}]))), <<"aaaabc">> = iolist_to_binary(join(re:split("aaaabc","^(?:a|ab)++c",[]))), <<"aaaabc">> = iolist_to_binary(join(re:split("aaaabc","^(?>a|ab)++c",[trim]))), <<"aaaabc">> = iolist_to_binary(join(re:split("aaaabc","^(?>a|ab)++c",[{parts, 2}]))), <<"aaaabc">> = iolist_to_binary(join(re:split("aaaabc","^(?>a|ab)++c",[]))), <<"">> = iolist_to_binary(join(re:split("aaaabc","^(?:a|ab)+c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaabc","^(?:a|ab)+c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaabc","^(?:a|ab)+c",[]))), <<"">> = iolist_to_binary(join(re:split("xyz","(?=abc){0}xyz",[trim]))), <<":">> = iolist_to_binary(join(re:split("xyz","(?=abc){0}xyz",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("xyz","(?=abc){0}xyz",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?=abc){1}xyz",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?=abc){1}xyz",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?=abc){1}xyz",[]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","(?=abc){1}xyz",[trim]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","(?=abc){1}xyz",[{parts, 2}]))), <<"xyz">> = iolist_to_binary(join(re:split("xyz","(?=abc){1}xyz",[]))), <<":a">> = iolist_to_binary(join(re:split("ab","(?=(a))?.",[trim]))), <<":a:b">> = iolist_to_binary(join(re:split("ab","(?=(a))?.",[{parts, 2}]))), <<":a:::">> = iolist_to_binary(join(re:split("ab","(?=(a))?.",[]))), <<"">> = iolist_to_binary(join(re:split("bc","(?=(a))?.",[trim]))), <<"::c">> = iolist_to_binary(join(re:split("bc","(?=(a))?.",[{parts, 2}]))), <<"::::">> = iolist_to_binary(join(re:split("bc","(?=(a))?.",[]))), ok. run39() -> <<"">> = iolist_to_binary(join(re:split("ab","(?=(a))??.",[trim]))), <<"::b">> = iolist_to_binary(join(re:split("ab","(?=(a))??.",[{parts, 2}]))), <<"::::">> = iolist_to_binary(join(re:split("ab","(?=(a))??.",[]))), <<"">> = iolist_to_binary(join(re:split("bc","(?=(a))??.",[trim]))), <<"::c">> = iolist_to_binary(join(re:split("bc","(?=(a))??.",[{parts, 2}]))), <<"::::">> = iolist_to_binary(join(re:split("bc","(?=(a))??.",[]))), <<":b">> = iolist_to_binary(join(re:split("abd","^(?=(?1))?[az]([abc])d",[trim]))), <<":b:">> = iolist_to_binary(join(re:split("abd","^(?=(?1))?[az]([abc])d",[{parts, 2}]))), <<":b:">> = iolist_to_binary(join(re:split("abd","^(?=(?1))?[az]([abc])d",[]))), <<":c:xx">> = iolist_to_binary(join(re:split("zcdxx","^(?=(?1))?[az]([abc])d",[trim]))), <<":c:xx">> = iolist_to_binary(join(re:split("zcdxx","^(?=(?1))?[az]([abc])d",[{parts, 2}]))), <<":c:xx">> = iolist_to_binary(join(re:split("zcdxx","^(?=(?1))?[az]([abc])d",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaa","^(?!a){0}\\w+",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaaa","^(?!a){0}\\w+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaaa","^(?!a){0}\\w+",[]))), <<"abc:abc">> = iolist_to_binary(join(re:split("abcxyz","(?<=(abc))?xyz",[trim]))), <<"abc:abc:">> = iolist_to_binary(join(re:split("abcxyz","(?<=(abc))?xyz",[{parts, 2}]))), <<"abc:abc:">> = iolist_to_binary(join(re:split("abcxyz","(?<=(abc))?xyz",[]))), <<"pqr">> = iolist_to_binary(join(re:split("pqrxyz","(?<=(abc))?xyz",[trim]))), <<"pqr::">> = iolist_to_binary(join(re:split("pqrxyz","(?<=(abc))?xyz",[{parts, 2}]))), <<"pqr::">> = iolist_to_binary(join(re:split("pqrxyz","(?<=(abc))?xyz",[]))), <<"">> = iolist_to_binary(join(re:split("ggg<<>>","^[\\g]+",[trim]))), <<":">> = iolist_to_binary(join(re:split("ggg<<>>","^[\\g]+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ggg<<>>","^[\\g]+",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[\\g]+",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[\\g]+",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^[\\g]+",[]))), <<"\\ga">> = iolist_to_binary(join(re:split("\\ga","^[\\g]+",[trim]))), <<"\\ga">> = iolist_to_binary(join(re:split("\\ga","^[\\g]+",[{parts, 2}]))), <<"\\ga">> = iolist_to_binary(join(re:split("\\ga","^[\\g]+",[]))), <<":xyz">> = iolist_to_binary(join(re:split("gggagagaxyz","^[\\ga]+",[trim]))), <<":xyz">> = iolist_to_binary(join(re:split("gggagagaxyz","^[\\ga]+",[{parts, 2}]))), <<":xyz">> = iolist_to_binary(join(re:split("gggagagaxyz","^[\\ga]+",[]))), <<":Z">> = iolist_to_binary(join(re:split("aaaa444:::Z","^[:a[:digit:]]+",[trim]))), <<":Z">> = iolist_to_binary(join(re:split("aaaa444:::Z","^[:a[:digit:]]+",[{parts, 2}]))), <<":Z">> = iolist_to_binary(join(re:split("aaaa444:::Z","^[:a[:digit:]]+",[]))), <<":Z">> = iolist_to_binary(join(re:split("aaaa444:::bbbZ","^[:a[:digit:]:b]+",[trim]))), <<":Z">> = iolist_to_binary(join(re:split("aaaa444:::bbbZ","^[:a[:digit:]:b]+",[{parts, 2}]))), <<":Z">> = iolist_to_binary(join(re:split("aaaa444:::bbbZ","^[:a[:digit:]:b]+",[]))), <<"">> = iolist_to_binary(join(re:split(":xxx:","[:a]xxx[b:]",[trim]))), <<":">> = iolist_to_binary(join(re:split(":xxx:","[:a]xxx[b:]",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split(":xxx:","[:a]xxx[b:]",[]))), <<"xaa:c">> = iolist_to_binary(join(re:split("xaabc","(?<=a{2})b",[caseless, trim]))), <<"xaa:c">> = iolist_to_binary(join(re:split("xaabc","(?<=a{2})b",[caseless, {parts, 2}]))), <<"xaa:c">> = iolist_to_binary(join(re:split("xaabc","(?<=a{2})b",[caseless]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=a{2})b",[caseless, trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=a{2})b",[caseless, {parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=a{2})b",[caseless]))), <<"xabc">> = iolist_to_binary(join(re:split("xabc","(?<=a{2})b",[caseless, trim]))), <<"xabc">> = iolist_to_binary(join(re:split("xabc","(?<=a{2})b",[caseless, {parts, 2}]))), <<"xabc">> = iolist_to_binary(join(re:split("xabc","(?<=a{2})b",[caseless]))), <<"xa:c">> = iolist_to_binary(join(re:split("xabc","(?> = iolist_to_binary(join(re:split("xabc","(?> = iolist_to_binary(join(re:split("xabc","(?> = iolist_to_binary(join(re:split("** Failers","(?> = iolist_to_binary(join(re:split("** Failers","(?> = iolist_to_binary(join(re:split("** Failers","(?> = iolist_to_binary(join(re:split("xaabc","(?> = iolist_to_binary(join(re:split("xaabc","(?> = iolist_to_binary(join(re:split("xaabc","(?> = iolist_to_binary(join(re:split("xa c","(?<=a\\h)c",[trim]))), <<"xa :">> = iolist_to_binary(join(re:split("xa c","(?<=a\\h)c",[{parts, 2}]))), <<"xa :">> = iolist_to_binary(join(re:split("xa c","(?<=a\\h)c",[]))), <<"axx:c">> = iolist_to_binary(join(re:split("axxbc","(?<=[^a]{2})b",[trim]))), <<"axx:c">> = iolist_to_binary(join(re:split("axxbc","(?<=[^a]{2})b",[{parts, 2}]))), <<"axx:c">> = iolist_to_binary(join(re:split("axxbc","(?<=[^a]{2})b",[]))), <<"aAA:c">> = iolist_to_binary(join(re:split("aAAbc","(?<=[^a]{2})b",[trim]))), <<"aAA:c">> = iolist_to_binary(join(re:split("aAAbc","(?<=[^a]{2})b",[{parts, 2}]))), <<"aAA:c">> = iolist_to_binary(join(re:split("aAAbc","(?<=[^a]{2})b",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=[^a]{2})b",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=[^a]{2})b",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=[^a]{2})b",[]))), <<"xaabc">> = iolist_to_binary(join(re:split("xaabc","(?<=[^a]{2})b",[trim]))), <<"xaabc">> = iolist_to_binary(join(re:split("xaabc","(?<=[^a]{2})b",[{parts, 2}]))), <<"xaabc">> = iolist_to_binary(join(re:split("xaabc","(?<=[^a]{2})b",[]))), <<"axx:c">> = iolist_to_binary(join(re:split("axxbc","(?<=[^a]{2})b",[caseless, trim]))), <<"axx:c">> = iolist_to_binary(join(re:split("axxbc","(?<=[^a]{2})b",[caseless, {parts, 2}]))), <<"axx:c">> = iolist_to_binary(join(re:split("axxbc","(?<=[^a]{2})b",[caseless]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=[^a]{2})b",[caseless, trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=[^a]{2})b",[caseless, {parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=[^a]{2})b",[caseless]))), <<"aAAbc">> = iolist_to_binary(join(re:split("aAAbc","(?<=[^a]{2})b",[caseless, trim]))), <<"aAAbc">> = iolist_to_binary(join(re:split("aAAbc","(?<=[^a]{2})b",[caseless, {parts, 2}]))), <<"aAAbc">> = iolist_to_binary(join(re:split("aAAbc","(?<=[^a]{2})b",[caseless]))), <<"xaabc">> = iolist_to_binary(join(re:split("xaabc","(?<=[^a]{2})b",[caseless, trim]))), <<"xaabc">> = iolist_to_binary(join(re:split("xaabc","(?<=[^a]{2})b",[caseless, {parts, 2}]))), <<"xaabc">> = iolist_to_binary(join(re:split("xaabc","(?<=[^a]{2})b",[caseless]))), <<"ab">> = iolist_to_binary(join(re:split("abc","(?<=a\\H)c",[trim]))), <<"ab:">> = iolist_to_binary(join(re:split("abc","(?<=a\\H)c",[{parts, 2}]))), <<"ab:">> = iolist_to_binary(join(re:split("abc","(?<=a\\H)c",[]))), <<"ab">> = iolist_to_binary(join(re:split("abc","(?<=a\\V)c",[trim]))), <<"ab:">> = iolist_to_binary(join(re:split("abc","(?<=a\\V)c",[{parts, 2}]))), <<"ab:">> = iolist_to_binary(join(re:split("abc","(?<=a\\V)c",[]))), <<"a ">> = iolist_to_binary(join(re:split("a c","(?<=a\\v)c",[trim]))), <<"a :">> = iolist_to_binary(join(re:split("a c","(?<=a\\v)c",[{parts,2}]))), <<"a :">> = iolist_to_binary(join(re:split("a c","(?<=a\\v)c",[]))), <<"X:X">> = iolist_to_binary(join(re:split("XcccddYX","(?(?=c)c|d)++Y",[trim]))), <<"X:X">> = iolist_to_binary(join(re:split("XcccddYX","(?(?=c)c|d)++Y",[{parts, 2}]))), <<"X:X">> = iolist_to_binary(join(re:split("XcccddYX","(?(?=c)c|d)++Y",[]))), <<"X:X">> = iolist_to_binary(join(re:split("XcccddYX","(?(?=c)c|d)*+Y",[trim]))), <<"X:X">> = iolist_to_binary(join(re:split("XcccddYX","(?(?=c)c|d)*+Y",[{parts, 2}]))), <<"X:X">> = iolist_to_binary(join(re:split("XcccddYX","(?(?=c)c|d)*+Y",[]))), <<":aaa">> = iolist_to_binary(join(re:split("aaaaaaa","^(a{2,3}){2,}+a",[trim]))), <<":aaa:">> = iolist_to_binary(join(re:split("aaaaaaa","^(a{2,3}){2,}+a",[{parts, 2}]))), <<":aaa:">> = iolist_to_binary(join(re:split("aaaaaaa","^(a{2,3}){2,}+a",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a{2,3}){2,}+a",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a{2,3}){2,}+a",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a{2,3}){2,}+a",[]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(a{2,3}){2,}+a",[trim]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(a{2,3}){2,}+a",[{parts, 2}]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(a{2,3}){2,}+a",[]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a{2,3}){2,}+a",[trim]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a{2,3}){2,}+a",[{parts, 2}]))), <<"aaaaaaaaa">> = iolist_to_binary(join(re:split("aaaaaaaaa","^(a{2,3}){2,}+a",[]))), ok. run40() -> <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a{2,3})++a",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a{2,3})++a",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a{2,3})++a",[]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(a{2,3})++a",[trim]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(a{2,3})++a",[{parts, 2}]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(a{2,3})++a",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a{2,3})*+a",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a{2,3})*+a",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a{2,3})*+a",[]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(a{2,3})*+a",[trim]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(a{2,3})*+a",[{parts, 2}]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(a{2,3})*+a",[]))), <<"">> = iolist_to_binary(join(re:split("abXde","ab\\Cde",[trim]))), <<":">> = iolist_to_binary(join(re:split("abXde","ab\\Cde",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abXde","ab\\Cde",[]))), <<"abZde">> = iolist_to_binary(join(re:split("abZdeX","(?<=ab\\Cde)X",[trim]))), <<"abZde:">> = iolist_to_binary(join(re:split("abZdeX","(?<=ab\\Cde)X",[{parts, 2}]))), <<"abZde:">> = iolist_to_binary(join(re:split("abZdeX","(?<=ab\\Cde)X",[]))), <<"">> = iolist_to_binary(join(re:split("aCb","a[\\CD]b",[trim]))), <<":">> = iolist_to_binary(join(re:split("aCb","a[\\CD]b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aCb","a[\\CD]b",[]))), <<"">> = iolist_to_binary(join(re:split("aDb","a[\\CD]b",[trim]))), <<":">> = iolist_to_binary(join(re:split("aDb","a[\\CD]b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aDb","a[\\CD]b",[]))), <<"">> = iolist_to_binary(join(re:split("aJb","a[\\C-X]b",[trim]))), <<":">> = iolist_to_binary(join(re:split("aJb","a[\\C-X]b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aJb","a[\\C-X]b",[]))), <<"X X">> = iolist_to_binary(join(re:split("X X","\\H\\h\\V\\v",[trim]))), <<"X X">> = iolist_to_binary(join(re:split("X X","\\H\\h\\V\\v",[{parts, 2}]))), <<"X X">> = iolist_to_binary(join(re:split("X X","\\H\\h\\V\\v",[]))), <<"">> = iolist_to_binary(join(re:split("X X ","\\H\\h\\V\\v",[trim]))), <<":">> = iolist_to_binary(join(re:split("X X ","\\H\\h\\V\\v",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("X X ","\\H\\h\\V\\v",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\H\\h\\V\\v",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\H\\h\\V\\v",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\H\\h\\V\\v",[]))), <<"  X">> = iolist_to_binary(join(re:split("  X","\\H\\h\\V\\v",[trim]))), <<"  X">> = iolist_to_binary(join(re:split("  X","\\H\\h\\V\\v",[{parts, 2}]))), <<"  X">> = iolist_to_binary(join(re:split("  X","\\H\\h\\V\\v",[]))), <<"">> = iolist_to_binary(join(re:split("  X ","\\H*\\h+\\V?\\v{3,4}",[trim]))), <<":">> = iolist_to_binary(join(re:split("  X ","\\H*\\h+\\V?\\v{3,4}",[{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("  X ","\\H*\\h+\\V?\\v{3,4}",[]))), <<"">> = iolist_to_binary(join(re:split("   ","\\H*\\h+\\V?\\v{3,4}",[trim]))), <<":">> = iolist_to_binary(join(re:split("   ","\\H*\\h+\\V?\\v{3,4}",[{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("   ","\\H*\\h+\\V?\\v{3,4}",[]))), <<"">> = iolist_to_binary(join(re:split("   ","\\H*\\h+\\V?\\v{3,4}",[trim]))), <<":">> = iolist_to_binary(join(re:split("   ","\\H*\\h+\\V?\\v{3,4}",[{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("   ","\\H*\\h+\\V?\\v{3,4}",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\H*\\h+\\V?\\v{3,4}",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\H*\\h+\\V?\\v{3,4}",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\H*\\h+\\V?\\v{3,4}",[]))), <<"   ">> = iolist_to_binary(join(re:split("   ","\\H*\\h+\\V?\\v{3,4}",[trim]))), <<"   ">> = iolist_to_binary(join(re:split("   ","\\H*\\h+\\V?\\v{3,4}",[{parts,2}]))), <<"   ">> = iolist_to_binary(join(re:split("   ","\\H*\\h+\\V?\\v{3,4}",[]))), <<"XY :E">> = iolist_to_binary(join(re:split("XY ABCDE","\\H{3,4}",[trim]))), <<"XY :E">> = iolist_to_binary(join(re:split("XY ABCDE","\\H{3,4}",[{parts, 2}]))), <<"XY :E">> = iolist_to_binary(join(re:split("XY ABCDE","\\H{3,4}",[]))), <<"XY : ST">> = iolist_to_binary(join(re:split("XY PQR ST","\\H{3,4}",[trim]))), <<"XY : ST">> = iolist_to_binary(join(re:split("XY PQR ST","\\H{3,4}",[{parts, 2}]))), <<"XY : ST">> = iolist_to_binary(join(re:split("XY PQR ST","\\H{3,4}",[]))), <<"XY A:QRS">> = iolist_to_binary(join(re:split("XY AB PQRS",".\\h{3,4}.",[trim]))), <<"XY A:QRS">> = iolist_to_binary(join(re:split("XY AB PQRS",".\\h{3,4}.",[{parts, 2}]))), <<"XY A:QRS">> = iolist_to_binary(join(re:split("XY AB PQRS",".\\h{3,4}.",[]))), <<">">> = iolist_to_binary(join(re:split(">XNNNYZ","\\h*X\\h?\\H+Y\\H?Z",[trim]))), <<">:">> = iolist_to_binary(join(re:split(">XNNNYZ","\\h*X\\h?\\H+Y\\H?Z",[{parts, 2}]))), <<">:">> = iolist_to_binary(join(re:split(">XNNNYZ","\\h*X\\h?\\H+Y\\H?Z",[]))), <<">">> = iolist_to_binary(join(re:split("> X NYQZ","\\h*X\\h?\\H+Y\\H?Z",[trim]))), <<">:">> = iolist_to_binary(join(re:split("> X NYQZ","\\h*X\\h?\\H+Y\\H?Z",[{parts, 2}]))), <<">:">> = iolist_to_binary(join(re:split("> X NYQZ","\\h*X\\h?\\H+Y\\H?Z",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\h*X\\h?\\H+Y\\H?Z",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\h*X\\h?\\H+Y\\H?Z",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\h*X\\h?\\H+Y\\H?Z",[]))), <<">XYZ">> = iolist_to_binary(join(re:split(">XYZ","\\h*X\\h?\\H+Y\\H?Z",[trim]))), <<">XYZ">> = iolist_to_binary(join(re:split(">XYZ","\\h*X\\h?\\H+Y\\H?Z",[{parts, 2}]))), <<">XYZ">> = iolist_to_binary(join(re:split(">XYZ","\\h*X\\h?\\H+Y\\H?Z",[]))), <<"> X NY Z">> = iolist_to_binary(join(re:split("> X NY Z","\\h*X\\h?\\H+Y\\H?Z",[trim]))), <<"> X NY Z">> = iolist_to_binary(join(re:split("> X NY Z","\\h*X\\h?\\H+Y\\H?Z",[{parts, 2}]))), <<"> X NY Z">> = iolist_to_binary(join(re:split("> X NY Z","\\h*X\\h?\\H+Y\\H?Z",[]))), <<">">> = iolist_to_binary(join(re:split(">XY Z A NN ","\\v*X\\v?Y\\v+Z\\V*\\x0a\\V+\\x0b\\V{2,3}\\x0c",[trim]))), <<">:">> = iolist_to_binary(join(re:split(">XY Z A NN ","\\v*X\\v?Y\\v+Z\\V*\\x0a\\V+\\x0b\\V{2,3}\\x0c",[{parts, 2}]))), <<">:">> = iolist_to_binary(join(re:split(">XY Z A NN ","\\v*X\\v?Y\\v+Z\\V*\\x0a\\V+\\x0b\\V{2,3}\\x0c",[]))), <<">">> = iolist_to_binary(join(re:split("> X Y ZZZ AAA NNN ","\\v*X\\v?Y\\v+Z\\V*\\x0a\\V+\\x0b\\V{2,3}\\x0c",[trim]))), <<">:">> = iolist_to_binary(join(re:split("> X Y ZZZ AAA NNN ","\\v*X\\v?Y\\v+Z\\V*\\x0a\\V+\\x0b\\V{2,3}\\x0c",[{parts, 2}]))), <<">:">> = iolist_to_binary(join(re:split("> X Y ZZZ AAA NNN ","\\v*X\\v?Y\\v+Z\\V*\\x0a\\V+\\x0b\\V{2,3}\\x0c",[]))), <<"foo:foo">> = iolist_to_binary(join(re:split("foobar","(foo)\\Kbar",[trim]))), <<"foo:foo:">> = iolist_to_binary(join(re:split("foobar","(foo)\\Kbar",[{parts, 2}]))), <<"foo:foo:">> = iolist_to_binary(join(re:split("foobar","(foo)\\Kbar",[]))), <<"foo:foo:bar">> = iolist_to_binary(join(re:split("foobar","(foo)(\\Kbar|baz)",[trim]))), <<"foo:foo:bar:">> = iolist_to_binary(join(re:split("foobar","(foo)(\\Kbar|baz)",[{parts, 2}]))), <<"foo:foo:bar:">> = iolist_to_binary(join(re:split("foobar","(foo)(\\Kbar|baz)",[]))), <<":foo:baz">> = iolist_to_binary(join(re:split("foobaz","(foo)(\\Kbar|baz)",[trim]))), <<":foo:baz:">> = iolist_to_binary(join(re:split("foobaz","(foo)(\\Kbar|baz)",[{parts, 2}]))), <<":foo:baz:">> = iolist_to_binary(join(re:split("foobaz","(foo)(\\Kbar|baz)",[]))), <<"foo:foobar">> = iolist_to_binary(join(re:split("foobarbaz","(foo\\Kbar)baz",[trim]))), <<"foo:foobar:">> = iolist_to_binary(join(re:split("foobarbaz","(foo\\Kbar)baz",[{parts, 2}]))), <<"foo:foobar:">> = iolist_to_binary(join(re:split("foobarbaz","(foo\\Kbar)baz",[]))), <<":tom">> = iolist_to_binary(join(re:split("tom-tom","(?tom|bon)-\\g{A}",[trim]))), <<":tom:">> = iolist_to_binary(join(re:split("tom-tom","(?tom|bon)-\\g{A}",[{parts, 2}]))), <<":tom:">> = iolist_to_binary(join(re:split("tom-tom","(?tom|bon)-\\g{A}",[]))), <<":bon">> = iolist_to_binary(join(re:split("bon-bon","(?tom|bon)-\\g{A}",[trim]))), <<":bon:">> = iolist_to_binary(join(re:split("bon-bon","(?tom|bon)-\\g{A}",[{parts, 2}]))), <<":bon:">> = iolist_to_binary(join(re:split("bon-bon","(?tom|bon)-\\g{A}",[]))), <<"bacxxx">> = iolist_to_binary(join(re:split("bacxxx","(^(a|b\\g{-1}))",[trim]))), <<"bacxxx">> = iolist_to_binary(join(re:split("bacxxx","(^(a|b\\g{-1}))",[{parts, 2}]))), <<"bacxxx">> = iolist_to_binary(join(re:split("bacxxx","(^(a|b\\g{-1}))",[]))), <<":abc">> = iolist_to_binary(join(re:split("abcabc","(?|(abc)|(xyz))\\1",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","(?|(abc)|(xyz))\\1",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","(?|(abc)|(xyz))\\1",[]))), <<":xyz">> = iolist_to_binary(join(re:split("xyzxyz","(?|(abc)|(xyz))\\1",[trim]))), <<":xyz:">> = iolist_to_binary(join(re:split("xyzxyz","(?|(abc)|(xyz))\\1",[{parts, 2}]))), <<":xyz:">> = iolist_to_binary(join(re:split("xyzxyz","(?|(abc)|(xyz))\\1",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?|(abc)|(xyz))\\1",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?|(abc)|(xyz))\\1",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?|(abc)|(xyz))\\1",[]))), <<"abcxyz">> = iolist_to_binary(join(re:split("abcxyz","(?|(abc)|(xyz))\\1",[trim]))), <<"abcxyz">> = iolist_to_binary(join(re:split("abcxyz","(?|(abc)|(xyz))\\1",[{parts, 2}]))), <<"abcxyz">> = iolist_to_binary(join(re:split("abcxyz","(?|(abc)|(xyz))\\1",[]))), <<"xyzabc">> = iolist_to_binary(join(re:split("xyzabc","(?|(abc)|(xyz))\\1",[trim]))), <<"xyzabc">> = iolist_to_binary(join(re:split("xyzabc","(?|(abc)|(xyz))\\1",[{parts, 2}]))), <<"xyzabc">> = iolist_to_binary(join(re:split("xyzabc","(?|(abc)|(xyz))\\1",[]))), <<":abc">> = iolist_to_binary(join(re:split("abcabc","(?|(abc)|(xyz))(?1)",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","(?|(abc)|(xyz))(?1)",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","(?|(abc)|(xyz))(?1)",[]))), <<":xyz">> = iolist_to_binary(join(re:split("xyzabc","(?|(abc)|(xyz))(?1)",[trim]))), <<":xyz:">> = iolist_to_binary(join(re:split("xyzabc","(?|(abc)|(xyz))(?1)",[{parts, 2}]))), <<":xyz:">> = iolist_to_binary(join(re:split("xyzabc","(?|(abc)|(xyz))(?1)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?|(abc)|(xyz))(?1)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?|(abc)|(xyz))(?1)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?|(abc)|(xyz))(?1)",[]))), <<"xyzxyz">> = iolist_to_binary(join(re:split("xyzxyz","(?|(abc)|(xyz))(?1)",[trim]))), <<"xyzxyz">> = iolist_to_binary(join(re:split("xyzxyz","(?|(abc)|(xyz))(?1)",[{parts, 2}]))), <<"xyzxyz">> = iolist_to_binary(join(re:split("xyzxyz","(?|(abc)|(xyz))(?1)",[]))), ok. run41() -> <<":a:b:c:d:Y">> = iolist_to_binary(join(re:split("XYabcdY","^X(?5)(a)(?|(b)|(q))(c)(d)(Y)",[trim]))), <<":a:b:c:d:Y:">> = iolist_to_binary(join(re:split("XYabcdY","^X(?5)(a)(?|(b)|(q))(c)(d)(Y)",[{parts, 2}]))), <<":a:b:c:d:Y:">> = iolist_to_binary(join(re:split("XYabcdY","^X(?5)(a)(?|(b)|(q))(c)(d)(Y)",[]))), <<":a:b:::c:d:Y">> = iolist_to_binary(join(re:split("XYabcdY","^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)",[trim]))), <<":a:b:::c:d:Y:">> = iolist_to_binary(join(re:split("XYabcdY","^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)",[{parts, 2}]))), <<":a:b:::c:d:Y:">> = iolist_to_binary(join(re:split("XYabcdY","^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)",[]))), <<":a:b:::c:d:Y">> = iolist_to_binary(join(re:split("XYabcdY","^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)",[trim]))), <<":a:b:::c:d:Y:">> = iolist_to_binary(join(re:split("XYabcdY","^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)",[{parts, 2}]))), <<":a:b:::c:d:Y:">> = iolist_to_binary(join(re:split("XYabcdY","^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)",[]))), <<":a:xyz">> = iolist_to_binary(join(re:split("a:aaxyz","(?'abc'\\w+):\\k{2}",[trim]))), <<":a:xyz">> = iolist_to_binary(join(re:split("a:aaxyz","(?'abc'\\w+):\\k{2}",[{parts, 2}]))), <<":a:xyz">> = iolist_to_binary(join(re:split("a:aaxyz","(?'abc'\\w+):\\k{2}",[]))), <<":ab:xyz">> = iolist_to_binary(join(re:split("ab:ababxyz","(?'abc'\\w+):\\k{2}",[trim]))), <<":ab:xyz">> = iolist_to_binary(join(re:split("ab:ababxyz","(?'abc'\\w+):\\k{2}",[{parts, 2}]))), <<":ab:xyz">> = iolist_to_binary(join(re:split("ab:ababxyz","(?'abc'\\w+):\\k{2}",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?'abc'\\w+):\\k{2}",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?'abc'\\w+):\\k{2}",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?'abc'\\w+):\\k{2}",[]))), <<"a:axyz">> = iolist_to_binary(join(re:split("a:axyz","(?'abc'\\w+):\\k{2}",[trim]))), <<"a:axyz">> = iolist_to_binary(join(re:split("a:axyz","(?'abc'\\w+):\\k{2}",[{parts, 2}]))), <<"a:axyz">> = iolist_to_binary(join(re:split("a:axyz","(?'abc'\\w+):\\k{2}",[]))), <<"ab:abxyz">> = iolist_to_binary(join(re:split("ab:abxyz","(?'abc'\\w+):\\k{2}",[trim]))), <<"ab:abxyz">> = iolist_to_binary(join(re:split("ab:abxyz","(?'abc'\\w+):\\k{2}",[{parts, 2}]))), <<"ab:abxyz">> = iolist_to_binary(join(re:split("ab:abxyz","(?'abc'\\w+):\\k{2}",[]))), <<":a:xyz">> = iolist_to_binary(join(re:split("a:aaxyz","(?'abc'\\w+):\\g{abc}{2}",[trim]))), <<":a:xyz">> = iolist_to_binary(join(re:split("a:aaxyz","(?'abc'\\w+):\\g{abc}{2}",[{parts, 2}]))), <<":a:xyz">> = iolist_to_binary(join(re:split("a:aaxyz","(?'abc'\\w+):\\g{abc}{2}",[]))), <<":ab:xyz">> = iolist_to_binary(join(re:split("ab:ababxyz","(?'abc'\\w+):\\g{abc}{2}",[trim]))), <<":ab:xyz">> = iolist_to_binary(join(re:split("ab:ababxyz","(?'abc'\\w+):\\g{abc}{2}",[{parts, 2}]))), <<":ab:xyz">> = iolist_to_binary(join(re:split("ab:ababxyz","(?'abc'\\w+):\\g{abc}{2}",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?'abc'\\w+):\\g{abc}{2}",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?'abc'\\w+):\\g{abc}{2}",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?'abc'\\w+):\\g{abc}{2}",[]))), <<"a:axyz">> = iolist_to_binary(join(re:split("a:axyz","(?'abc'\\w+):\\g{abc}{2}",[trim]))), <<"a:axyz">> = iolist_to_binary(join(re:split("a:axyz","(?'abc'\\w+):\\g{abc}{2}",[{parts, 2}]))), <<"a:axyz">> = iolist_to_binary(join(re:split("a:axyz","(?'abc'\\w+):\\g{abc}{2}",[]))), <<"ab:abxyz">> = iolist_to_binary(join(re:split("ab:abxyz","(?'abc'\\w+):\\g{abc}{2}",[trim]))), <<"ab:abxyz">> = iolist_to_binary(join(re:split("ab:abxyz","(?'abc'\\w+):\\g{abc}{2}",[{parts, 2}]))), <<"ab:abxyz">> = iolist_to_binary(join(re:split("ab:abxyz","(?'abc'\\w+):\\g{abc}{2}",[]))), <<":a">> = iolist_to_binary(join(re:split("abd","^(?a)? (?()b|c) (?('ab')d|e)",[extended, trim]))), <<":a:">> = iolist_to_binary(join(re:split("abd","^(?a)? (?()b|c) (?('ab')d|e)",[extended, {parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("abd","^(?a)? (?()b|c) (?('ab')d|e)",[extended]))), <<"">> = iolist_to_binary(join(re:split("ce","^(?a)? (?()b|c) (?('ab')d|e)",[extended, trim]))), <<"::">> = iolist_to_binary(join(re:split("ce","^(?a)? (?()b|c) (?('ab')d|e)",[extended, {parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("ce","^(?a)? (?()b|c) (?('ab')d|e)",[extended]))), <<":aX">> = iolist_to_binary(join(re:split("aXaXZ","^(a.)\\g-1Z",[trim]))), <<":aX:">> = iolist_to_binary(join(re:split("aXaXZ","^(a.)\\g-1Z",[{parts, 2}]))), <<":aX:">> = iolist_to_binary(join(re:split("aXaXZ","^(a.)\\g-1Z",[]))), <<":aX">> = iolist_to_binary(join(re:split("aXaXZ","^(a.)\\g{-1}Z",[trim]))), <<":aX:">> = iolist_to_binary(join(re:split("aXaXZ","^(a.)\\g{-1}Z",[{parts, 2}]))), <<":aX:">> = iolist_to_binary(join(re:split("aXaXZ","^(a.)\\g{-1}Z",[]))), <<":::cd">> = iolist_to_binary(join(re:split("abcd","^(?(DEFINE) (? a) (? b) ) (?&A) (?&B) ",[extended, trim]))), <<":::cd">> = iolist_to_binary(join(re:split("abcd","^(?(DEFINE) (? a) (? b) ) (?&A) (?&B) ",[extended, {parts, 2}]))), <<":::cd">> = iolist_to_binary(join(re:split("abcd","^(?(DEFINE) (? a) (? b) ) (?&A) (?&B) ",[extended]))), <<":metcalfe:33">> = iolist_to_binary(join(re:split("metcalfe 33","(?(?&NAME_PAT))\\s+(?(?&ADDRESS_PAT)) (?(DEFINE) (?[a-z]+) (?\\d+) )",[extended,trim]))), <<":metcalfe:33:::">> = iolist_to_binary(join(re:split("metcalfe 33","(?(?&NAME_PAT))\\s+(?(?&ADDRESS_PAT)) (?(DEFINE) (?[a-z]+) (?\\d+) )",[extended,{parts,2}]))), <<":metcalfe:33:::">> = iolist_to_binary(join(re:split("metcalfe 33","(?(?&NAME_PAT))\\s+(?(?&ADDRESS_PAT)) (?(DEFINE) (?[a-z]+) (?\\d+) )",[extended]))), <<"::.4">> = iolist_to_binary(join(re:split("1.2.3.4","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[trim]))), <<"::.4:">> = iolist_to_binary(join(re:split("1.2.3.4","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[{parts, 2}]))), <<"::.4:">> = iolist_to_binary(join(re:split("1.2.3.4","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[]))), <<"::.206">> = iolist_to_binary(join(re:split("131.111.10.206","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[trim]))), <<"::.206:">> = iolist_to_binary(join(re:split("131.111.10.206","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[{parts, 2}]))), <<"::.206:">> = iolist_to_binary(join(re:split("131.111.10.206","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[]))), <<"::.0">> = iolist_to_binary(join(re:split("10.0.0.0","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[trim]))), <<"::.0:">> = iolist_to_binary(join(re:split("10.0.0.0","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[{parts, 2}]))), <<"::.0:">> = iolist_to_binary(join(re:split("10.0.0.0","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[]))), <<"10.6">> = iolist_to_binary(join(re:split("10.6","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[trim]))), <<"10.6">> = iolist_to_binary(join(re:split("10.6","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[{parts, 2}]))), <<"10.6">> = iolist_to_binary(join(re:split("10.6","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[]))), <<"455.3.4.5">> = iolist_to_binary(join(re:split("455.3.4.5","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[trim]))), <<"455.3.4.5">> = iolist_to_binary(join(re:split("455.3.4.5","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[{parts, 2}]))), <<"455.3.4.5">> = iolist_to_binary(join(re:split("455.3.4.5","(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))\\b(?&byte)(\\.(?&byte)){3}",[]))), <<":.4">> = iolist_to_binary(join(re:split("1.2.3.4","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[trim]))), <<":.4::">> = iolist_to_binary(join(re:split("1.2.3.4","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[{parts, 2}]))), <<":.4::">> = iolist_to_binary(join(re:split("1.2.3.4","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[]))), <<":.206">> = iolist_to_binary(join(re:split("131.111.10.206","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[trim]))), <<":.206::">> = iolist_to_binary(join(re:split("131.111.10.206","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[{parts, 2}]))), <<":.206::">> = iolist_to_binary(join(re:split("131.111.10.206","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[]))), <<":.0">> = iolist_to_binary(join(re:split("10.0.0.0","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[trim]))), <<":.0::">> = iolist_to_binary(join(re:split("10.0.0.0","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[{parts, 2}]))), <<":.0::">> = iolist_to_binary(join(re:split("10.0.0.0","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[]))), <<"10.6">> = iolist_to_binary(join(re:split("10.6","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[trim]))), <<"10.6">> = iolist_to_binary(join(re:split("10.6","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[{parts, 2}]))), <<"10.6">> = iolist_to_binary(join(re:split("10.6","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[]))), <<"455.3.4.5">> = iolist_to_binary(join(re:split("455.3.4.5","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[trim]))), <<"455.3.4.5">> = iolist_to_binary(join(re:split("455.3.4.5","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[{parts, 2}]))), <<"455.3.4.5">> = iolist_to_binary(join(re:split("455.3.4.5","\\b(?&byte)(\\.(?&byte)){3}(?(DEFINE)(?2[0-4]\\d|25[0-5]|1\\d\\d|[1-9]?\\d))",[]))), <<":party">> = iolist_to_binary(join(re:split("now is the time for all good men to come to the aid of the party","^(\\w++|\\s++)*$",[trim]))), <<":party:">> = iolist_to_binary(join(re:split("now is the time for all good men to come to the aid of the party","^(\\w++|\\s++)*$",[{parts, 2}]))), <<":party:">> = iolist_to_binary(join(re:split("now is the time for all good men to come to the aid of the party","^(\\w++|\\s++)*$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\w++|\\s++)*$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\w++|\\s++)*$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\w++|\\s++)*$",[]))), <<"this is not a line with only words and spaces!">> = iolist_to_binary(join(re:split("this is not a line with only words and spaces!","^(\\w++|\\s++)*$",[trim]))), <<"this is not a line with only words and spaces!">> = iolist_to_binary(join(re:split("this is not a line with only words and spaces!","^(\\w++|\\s++)*$",[{parts, 2}]))), <<"this is not a line with only words and spaces!">> = iolist_to_binary(join(re:split("this is not a line with only words and spaces!","^(\\w++|\\s++)*$",[]))), <<":12345:a">> = iolist_to_binary(join(re:split("12345a","(\\d++)(\\w)",[trim]))), <<":12345:a:">> = iolist_to_binary(join(re:split("12345a","(\\d++)(\\w)",[{parts, 2}]))), <<":12345:a:">> = iolist_to_binary(join(re:split("12345a","(\\d++)(\\w)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(\\d++)(\\w)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(\\d++)(\\w)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","(\\d++)(\\w)",[]))), <<"12345+">> = iolist_to_binary(join(re:split("12345+","(\\d++)(\\w)",[trim]))), <<"12345+">> = iolist_to_binary(join(re:split("12345+","(\\d++)(\\w)",[{parts, 2}]))), <<"12345+">> = iolist_to_binary(join(re:split("12345+","(\\d++)(\\w)",[]))), <<"">> = iolist_to_binary(join(re:split("aaab","a++b",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaab","a++b",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaab","a++b",[]))), <<":aaab">> = iolist_to_binary(join(re:split("aaab","(a++b)",[trim]))), <<":aaab:">> = iolist_to_binary(join(re:split("aaab","(a++b)",[{parts, 2}]))), <<":aaab:">> = iolist_to_binary(join(re:split("aaab","(a++b)",[]))), <<":aaa">> = iolist_to_binary(join(re:split("aaab","(a++)b",[trim]))), <<":aaa:">> = iolist_to_binary(join(re:split("aaab","(a++)b",[{parts, 2}]))), <<":aaa:">> = iolist_to_binary(join(re:split("aaab","(a++)b",[]))), <<"((:x">> = iolist_to_binary(join(re:split("((abc(ade)ufh()()x","([^()]++|\\([^()]*\\))+",[trim]))), <<"((:x:">> = iolist_to_binary(join(re:split("((abc(ade)ufh()()x","([^()]++|\\([^()]*\\))+",[{parts, 2}]))), <<"((:x:">> = iolist_to_binary(join(re:split("((abc(ade)ufh()()x","([^()]++|\\([^()]*\\))+",[]))), <<":abc">> = iolist_to_binary(join(re:split("(abc)","\\(([^()]++|\\([^()]+\\))+\\)",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("(abc)","\\(([^()]++|\\([^()]+\\))+\\)",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("(abc)","\\(([^()]++|\\([^()]+\\))+\\)",[]))), <<":xyz">> = iolist_to_binary(join(re:split("(abc(def)xyz)","\\(([^()]++|\\([^()]+\\))+\\)",[trim]))), <<":xyz:">> = iolist_to_binary(join(re:split("(abc(def)xyz)","\\(([^()]++|\\([^()]+\\))+\\)",[{parts, 2}]))), <<":xyz:">> = iolist_to_binary(join(re:split("(abc(def)xyz)","\\(([^()]++|\\([^()]+\\))+\\)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\(([^()]++|\\([^()]+\\))+\\)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\(([^()]++|\\([^()]+\\))+\\)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","\\(([^()]++|\\([^()]+\\))+\\)",[]))), <<"((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","\\(([^()]++|\\([^()]+\\))+\\)",[trim]))), <<"((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","\\(([^()]++|\\([^()]+\\))+\\)",[{parts, 2}]))), <<"((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa">> = iolist_to_binary(join(re:split("((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","\\(([^()]++|\\([^()]+\\))+\\)",[]))), <<":c">> = iolist_to_binary(join(re:split("abc","^([^()]|\\((?1)*\\))*$",[trim]))), <<":c:">> = iolist_to_binary(join(re:split("abc","^([^()]|\\((?1)*\\))*$",[{parts, 2}]))), <<":c:">> = iolist_to_binary(join(re:split("abc","^([^()]|\\((?1)*\\))*$",[]))), <<":c">> = iolist_to_binary(join(re:split("a(b)c","^([^()]|\\((?1)*\\))*$",[trim]))), <<":c:">> = iolist_to_binary(join(re:split("a(b)c","^([^()]|\\((?1)*\\))*$",[{parts, 2}]))), <<":c:">> = iolist_to_binary(join(re:split("a(b)c","^([^()]|\\((?1)*\\))*$",[]))), <<":d">> = iolist_to_binary(join(re:split("a(b(c))d","^([^()]|\\((?1)*\\))*$",[trim]))), <<":d:">> = iolist_to_binary(join(re:split("a(b(c))d","^([^()]|\\((?1)*\\))*$",[{parts, 2}]))), <<":d:">> = iolist_to_binary(join(re:split("a(b(c))d","^([^()]|\\((?1)*\\))*$",[]))), <<"*** Failers)">> = iolist_to_binary(join(re:split("*** Failers)","^([^()]|\\((?1)*\\))*$",[trim]))), <<"*** Failers)">> = iolist_to_binary(join(re:split("*** Failers)","^([^()]|\\((?1)*\\))*$",[{parts, 2}]))), <<"*** Failers)">> = iolist_to_binary(join(re:split("*** Failers)","^([^()]|\\((?1)*\\))*$",[]))), <<"a(b(c)d">> = iolist_to_binary(join(re:split("a(b(c)d","^([^()]|\\((?1)*\\))*$",[trim]))), <<"a(b(c)d">> = iolist_to_binary(join(re:split("a(b(c)d","^([^()]|\\((?1)*\\))*$",[{parts, 2}]))), <<"a(b(c)d">> = iolist_to_binary(join(re:split("a(b(c)d","^([^()]|\\((?1)*\\))*$",[]))), ok. run42() -> <<":3">> = iolist_to_binary(join(re:split(">abc>123abc>([^()]|\\((?1)*\\))*> = iolist_to_binary(join(re:split(">abc>123abc>([^()]|\\((?1)*\\))*> = iolist_to_binary(join(re:split(">abc>123abc>([^()]|\\((?1)*\\))*> = iolist_to_binary(join(re:split(">abc>1(2)3abc>([^()]|\\((?1)*\\))*> = iolist_to_binary(join(re:split(">abc>1(2)3abc>([^()]|\\((?1)*\\))*> = iolist_to_binary(join(re:split(">abc>1(2)3abc>([^()]|\\((?1)*\\))*> = iolist_to_binary(join(re:split(">abc>(1(2)3)abc>([^()]|\\((?1)*\\))*> = iolist_to_binary(join(re:split(">abc>(1(2)3)abc>([^()]|\\((?1)*\\))*> = iolist_to_binary(join(re:split(">abc>(1(2)3)abc>([^()]|\\((?1)*\\))*> = iolist_to_binary(join(re:split("1221","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, trim]))), <<":1221:1:::">> = iolist_to_binary(join(re:split("1221","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, {parts, 2}]))), <<":1221:1:::">> = iolist_to_binary(join(re:split("1221","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless]))), <<":::Satanoscillatemymetallicsonatas:S">> = iolist_to_binary(join(re:split("Satanoscillatemymetallicsonatas","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, trim]))), <<":::Satanoscillatemymetallicsonatas:S:">> = iolist_to_binary(join(re:split("Satanoscillatemymetallicsonatas","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, {parts, 2}]))), <<":::Satanoscillatemymetallicsonatas:S:">> = iolist_to_binary(join(re:split("Satanoscillatemymetallicsonatas","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless]))), <<":::AmanaplanacanalPanama:A">> = iolist_to_binary(join(re:split("AmanaplanacanalPanama","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, trim]))), <<":::AmanaplanacanalPanama:A:">> = iolist_to_binary(join(re:split("AmanaplanacanalPanama","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, {parts, 2}]))), <<":::AmanaplanacanalPanama:A:">> = iolist_to_binary(join(re:split("AmanaplanacanalPanama","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless]))), <<":::AblewasIereIsawElba:A">> = iolist_to_binary(join(re:split("AblewasIereIsawElba","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, trim]))), <<":::AblewasIereIsawElba:A:">> = iolist_to_binary(join(re:split("AblewasIereIsawElba","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, {parts, 2}]))), <<":::AblewasIereIsawElba:A:">> = iolist_to_binary(join(re:split("AblewasIereIsawElba","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless]))), <<"Thequickbrownfox">> = iolist_to_binary(join(re:split("Thequickbrownfox","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, trim]))), <<"Thequickbrownfox">> = iolist_to_binary(join(re:split("Thequickbrownfox","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless, {parts, 2}]))), <<"Thequickbrownfox">> = iolist_to_binary(join(re:split("Thequickbrownfox","^(?:((.)(?1)\\2|)|((.)(?3)\\4|.))$",[caseless]))), <<":12">> = iolist_to_binary(join(re:split("12","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[trim]))), <<":12::">> = iolist_to_binary(join(re:split("12","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[{parts, 2}]))), <<":12::">> = iolist_to_binary(join(re:split("12","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[]))), <<":(((2+2)*-3)-7):-">> = iolist_to_binary(join(re:split("(((2+2)*-3)-7)","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[trim]))), <<":(((2+2)*-3)-7):-:">> = iolist_to_binary(join(re:split("(((2+2)*-3)-7)","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[{parts, 2}]))), <<":(((2+2)*-3)-7):-:">> = iolist_to_binary(join(re:split("(((2+2)*-3)-7)","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[]))), <<":-12">> = iolist_to_binary(join(re:split("-12","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[trim]))), <<":-12::">> = iolist_to_binary(join(re:split("-12","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[{parts, 2}]))), <<":-12::">> = iolist_to_binary(join(re:split("-12","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[]))), <<"((2+2)*-3)-7)">> = iolist_to_binary(join(re:split("((2+2)*-3)-7)","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[trim]))), <<"((2+2)*-3)-7)">> = iolist_to_binary(join(re:split("((2+2)*-3)-7)","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[{parts, 2}]))), <<"((2+2)*-3)-7)">> = iolist_to_binary(join(re:split("((2+2)*-3)-7)","^(\\d+|\\((?1)([+*-])(?1)\\)|-(?1))$",[]))), <<":xyz:y">> = iolist_to_binary(join(re:split("xyz","^(x(y|(?1){2})z)",[trim]))), <<":xyz:y:">> = iolist_to_binary(join(re:split("xyz","^(x(y|(?1){2})z)",[{parts, 2}]))), <<":xyz:y:">> = iolist_to_binary(join(re:split("xyz","^(x(y|(?1){2})z)",[]))), <<":xxyzxyzz:xyzxyz">> = iolist_to_binary(join(re:split("xxyzxyzz","^(x(y|(?1){2})z)",[trim]))), <<":xxyzxyzz:xyzxyz:">> = iolist_to_binary(join(re:split("xxyzxyzz","^(x(y|(?1){2})z)",[{parts, 2}]))), <<":xxyzxyzz:xyzxyz:">> = iolist_to_binary(join(re:split("xxyzxyzz","^(x(y|(?1){2})z)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(x(y|(?1){2})z)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(x(y|(?1){2})z)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(x(y|(?1){2})z)",[]))), <<"xxyzz">> = iolist_to_binary(join(re:split("xxyzz","^(x(y|(?1){2})z)",[trim]))), <<"xxyzz">> = iolist_to_binary(join(re:split("xxyzz","^(x(y|(?1){2})z)",[{parts, 2}]))), <<"xxyzz">> = iolist_to_binary(join(re:split("xxyzz","^(x(y|(?1){2})z)",[]))), <<"xxyzxyzxyzz">> = iolist_to_binary(join(re:split("xxyzxyzxyzz","^(x(y|(?1){2})z)",[trim]))), <<"xxyzxyzxyzz">> = iolist_to_binary(join(re:split("xxyzxyzxyzz","^(x(y|(?1){2})z)",[{parts, 2}]))), <<"xxyzxyzxyzz">> = iolist_to_binary(join(re:split("xxyzxyzxyzz","^(x(y|(?1){2})z)",[]))), <<":<>:<>">> = iolist_to_binary(join(re:split("<>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, trim]))), <<":<>:<>:">> = iolist_to_binary(join(re:split("<>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, {parts, 2}]))), <<":<>:<>:">> = iolist_to_binary(join(re:split("<>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended]))), <<"::">> = iolist_to_binary(join(re:split("","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, trim]))), <<":::">> = iolist_to_binary(join(re:split("","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, {parts, 2}]))), <<":::">> = iolist_to_binary(join(re:split("","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended]))), <<": hij>: hij>">> = iolist_to_binary(join(re:split(" hij>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, trim]))), <<": hij>: hij>:">> = iolist_to_binary(join(re:split(" hij>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, {parts, 2}]))), <<": hij>: hij>:">> = iolist_to_binary(join(re:split(" hij>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended]))), <<":: hij>">> = iolist_to_binary(join(re:split(" hij>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, trim]))), <<":: hij>">> = iolist_to_binary(join(re:split(" hij>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, {parts, 2}]))), <<":: hij>">> = iolist_to_binary(join(re:split(" hij>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended]))), <<":def>:def>">> = iolist_to_binary(join(re:split("def>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, trim]))), <<":def>:def>:">> = iolist_to_binary(join(re:split("def>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, {parts, 2}]))), <<":def>:def>:">> = iolist_to_binary(join(re:split("def>","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended]))), <<":<>">> = iolist_to_binary(join(re:split("","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, trim]))), <<":<>:">> = iolist_to_binary(join(re:split("","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, {parts, 2}]))), <<":<>:">> = iolist_to_binary(join(re:split("","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","((< (?: (?(R) \\d++ | [^<>]*+) | (?2)) * >))",[extended]))), <<"> = iolist_to_binary(join(re:split("]*+) | (?2)) * >))",[extended, trim]))), <<"> = iolist_to_binary(join(re:split("]*+) | (?2)) * >))",[extended, {parts, 2}]))), <<"> = iolist_to_binary(join(re:split("]*+) | (?2)) * >))",[extended]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^a+(*FAIL)",[trim]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^a+(*FAIL)",[{parts, 2}]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^a+(*FAIL)",[]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?c+(*FAIL)",[trim]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?c+(*FAIL)",[{parts, 2}]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?c+(*FAIL)",[]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?(*PRUNE)c+(*FAIL)",[trim]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?(*PRUNE)c+(*FAIL)",[{parts, 2}]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?(*PRUNE)c+(*FAIL)",[]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?(*COMMIT)c+(*FAIL)",[trim]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?(*COMMIT)c+(*FAIL)",[{parts, 2}]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?(*COMMIT)c+(*FAIL)",[]))), <<"aaabcccaaabccc">> = iolist_to_binary(join(re:split("aaabcccaaabccc","a+b?(*SKIP)c+(*FAIL)",[trim]))), <<"aaabcccaaabccc">> = iolist_to_binary(join(re:split("aaabcccaaabccc","a+b?(*SKIP)c+(*FAIL)",[{parts, 2}]))), <<"aaabcccaaabccc">> = iolist_to_binary(join(re:split("aaabcccaaabccc","a+b?(*SKIP)c+(*FAIL)",[]))), <<"">> = iolist_to_binary(join(re:split("aaaxxxxxx","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaxxxxxx","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaxxxxxx","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<":++++++">> = iolist_to_binary(join(re:split("aaa++++++","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":++++++">> = iolist_to_binary(join(re:split("aaa++++++","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":++++++">> = iolist_to_binary(join(re:split("aaa++++++","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<"">> = iolist_to_binary(join(re:split("bbbxxxxx","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":">> = iolist_to_binary(join(re:split("bbbxxxxx","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("bbbxxxxx","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<":+++++">> = iolist_to_binary(join(re:split("bbb+++++","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":+++++">> = iolist_to_binary(join(re:split("bbb+++++","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":+++++">> = iolist_to_binary(join(re:split("bbb+++++","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<"">> = iolist_to_binary(join(re:split("cccxxxx","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":">> = iolist_to_binary(join(re:split("cccxxxx","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("cccxxxx","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<":++++">> = iolist_to_binary(join(re:split("ccc++++","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":++++">> = iolist_to_binary(join(re:split("ccc++++","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":++++">> = iolist_to_binary(join(re:split("ccc++++","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<":ddddd">> = iolist_to_binary(join(re:split("dddddddd","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":ddddd">> = iolist_to_binary(join(re:split("dddddddd","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":ddddd">> = iolist_to_binary(join(re:split("dddddddd","^(?:aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<":aaaxxxxxx">> = iolist_to_binary(join(re:split("aaaxxxxxx","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":aaaxxxxxx:">> = iolist_to_binary(join(re:split("aaaxxxxxx","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":aaaxxxxxx:">> = iolist_to_binary(join(re:split("aaaxxxxxx","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<":aaa:++++++">> = iolist_to_binary(join(re:split("aaa++++++","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":aaa:++++++">> = iolist_to_binary(join(re:split("aaa++++++","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":aaa:++++++">> = iolist_to_binary(join(re:split("aaa++++++","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<":bbbxxxxx">> = iolist_to_binary(join(re:split("bbbxxxxx","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":bbbxxxxx:">> = iolist_to_binary(join(re:split("bbbxxxxx","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":bbbxxxxx:">> = iolist_to_binary(join(re:split("bbbxxxxx","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<":bbb:+++++">> = iolist_to_binary(join(re:split("bbb+++++","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":bbb:+++++">> = iolist_to_binary(join(re:split("bbb+++++","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":bbb:+++++">> = iolist_to_binary(join(re:split("bbb+++++","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<":cccxxxx">> = iolist_to_binary(join(re:split("cccxxxx","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":cccxxxx:">> = iolist_to_binary(join(re:split("cccxxxx","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":cccxxxx:">> = iolist_to_binary(join(re:split("cccxxxx","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<":ccc:++++">> = iolist_to_binary(join(re:split("ccc++++","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":ccc:++++">> = iolist_to_binary(join(re:split("ccc++++","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":ccc:++++">> = iolist_to_binary(join(re:split("ccc++++","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<":ddd:ddddd">> = iolist_to_binary(join(re:split("dddddddd","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[trim]))), <<":ddd:ddddd">> = iolist_to_binary(join(re:split("dddddddd","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[{parts, 2}]))), <<":ddd:ddddd">> = iolist_to_binary(join(re:split("dddddddd","^(aaa(*THEN)\\w{6}|bbb(*THEN)\\w{5}|ccc(*THEN)\\w{4}|\\w{3})",[]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?(*THEN)c+(*FAIL)",[trim]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?(*THEN)c+(*FAIL)",[{parts, 2}]))), <<"aaabccc">> = iolist_to_binary(join(re:split("aaabccc","a+b?(*THEN)c+(*FAIL)",[]))), <<":AB:B">> = iolist_to_binary(join(re:split("AB","(A (A|B(*ACCEPT)|C) D)(E)",[extended, trim]))), <<":AB:B::">> = iolist_to_binary(join(re:split("AB","(A (A|B(*ACCEPT)|C) D)(E)",[extended, {parts, 2}]))), <<":AB:B::">> = iolist_to_binary(join(re:split("AB","(A (A|B(*ACCEPT)|C) D)(E)",[extended]))), <<":AB:B::X">> = iolist_to_binary(join(re:split("ABX","(A (A|B(*ACCEPT)|C) D)(E)",[extended, trim]))), <<":AB:B::X">> = iolist_to_binary(join(re:split("ABX","(A (A|B(*ACCEPT)|C) D)(E)",[extended, {parts, 2}]))), <<":AB:B::X">> = iolist_to_binary(join(re:split("ABX","(A (A|B(*ACCEPT)|C) D)(E)",[extended]))), <<":AAD:A:E">> = iolist_to_binary(join(re:split("AADE","(A (A|B(*ACCEPT)|C) D)(E)",[extended, trim]))), <<":AAD:A:E:">> = iolist_to_binary(join(re:split("AADE","(A (A|B(*ACCEPT)|C) D)(E)",[extended, {parts, 2}]))), <<":AAD:A:E:">> = iolist_to_binary(join(re:split("AADE","(A (A|B(*ACCEPT)|C) D)(E)",[extended]))), <<":ACD:C:E">> = iolist_to_binary(join(re:split("ACDE","(A (A|B(*ACCEPT)|C) D)(E)",[extended, trim]))), <<":ACD:C:E:">> = iolist_to_binary(join(re:split("ACDE","(A (A|B(*ACCEPT)|C) D)(E)",[extended, {parts, 2}]))), <<":ACD:C:E:">> = iolist_to_binary(join(re:split("ACDE","(A (A|B(*ACCEPT)|C) D)(E)",[extended]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(A (A|B(*ACCEPT)|C) D)(E)",[extended, trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(A (A|B(*ACCEPT)|C) D)(E)",[extended, {parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(A (A|B(*ACCEPT)|C) D)(E)",[extended]))), <<"AD">> = iolist_to_binary(join(re:split("AD","(A (A|B(*ACCEPT)|C) D)(E)",[extended, trim]))), <<"AD">> = iolist_to_binary(join(re:split("AD","(A (A|B(*ACCEPT)|C) D)(E)",[extended, {parts, 2}]))), <<"AD">> = iolist_to_binary(join(re:split("AD","(A (A|B(*ACCEPT)|C) D)(E)",[extended]))), <<":1221:1">> = iolist_to_binary(join(re:split("1221","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, trim]))), <<":1221:1:::">> = iolist_to_binary(join(re:split("1221","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, {parts, 2}]))), <<":1221:1:::">> = iolist_to_binary(join(re:split("1221","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless]))), <<":::Satan, oscillate my metallic sonatas:S">> = iolist_to_binary(join(re:split("Satan, oscillate my metallic sonatas!","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, trim]))), <<":::Satan, oscillate my metallic sonatas:S:">> = iolist_to_binary(join(re:split("Satan, oscillate my metallic sonatas!","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, {parts, 2}]))), <<":::Satan, oscillate my metallic sonatas:S:">> = iolist_to_binary(join(re:split("Satan, oscillate my metallic sonatas!","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless]))), <<":::A man, a plan, a canal: Panama:A">> = iolist_to_binary(join(re:split("A man, a plan, a canal: Panama!","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, trim]))), <<":::A man, a plan, a canal: Panama:A:">> = iolist_to_binary(join(re:split("A man, a plan, a canal: Panama!","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, {parts, 2}]))), <<":::A man, a plan, a canal: Panama:A:">> = iolist_to_binary(join(re:split("A man, a plan, a canal: Panama!","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless]))), <<":::Able was I ere I saw Elba:A">> = iolist_to_binary(join(re:split("Able was I ere I saw Elba.","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, trim]))), <<":::Able was I ere I saw Elba:A:">> = iolist_to_binary(join(re:split("Able was I ere I saw Elba.","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, {parts, 2}]))), <<":::Able was I ere I saw Elba:A:">> = iolist_to_binary(join(re:split("Able was I ere I saw Elba.","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, {parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless]))), <<"The quick brown fox">> = iolist_to_binary(join(re:split("The quick brown fox","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, trim]))), <<"The quick brown fox">> = iolist_to_binary(join(re:split("The quick brown fox","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless, {parts, 2}]))), <<"The quick brown fox">> = iolist_to_binary(join(re:split("The quick brown fox","^\\W*+(?:((.)\\W*+(?1)\\W*+\\2|)|((.)\\W*+(?3)\\W*+\\4|\\W*+.\\W*+))\\W*+$",[caseless]))), <<":a">> = iolist_to_binary(join(re:split("a","^((.)(?1)\\2|.)$",[trim]))), <<":a::">> = iolist_to_binary(join(re:split("a","^((.)(?1)\\2|.)$",[{parts, 2}]))), <<":a::">> = iolist_to_binary(join(re:split("a","^((.)(?1)\\2|.)$",[]))), <<":aba:a">> = iolist_to_binary(join(re:split("aba","^((.)(?1)\\2|.)$",[trim]))), <<":aba:a:">> = iolist_to_binary(join(re:split("aba","^((.)(?1)\\2|.)$",[{parts, 2}]))), <<":aba:a:">> = iolist_to_binary(join(re:split("aba","^((.)(?1)\\2|.)$",[]))), <<":aabaa:a">> = iolist_to_binary(join(re:split("aabaa","^((.)(?1)\\2|.)$",[trim]))), <<":aabaa:a:">> = iolist_to_binary(join(re:split("aabaa","^((.)(?1)\\2|.)$",[{parts, 2}]))), <<":aabaa:a:">> = iolist_to_binary(join(re:split("aabaa","^((.)(?1)\\2|.)$",[]))), <<":abcdcba:a">> = iolist_to_binary(join(re:split("abcdcba","^((.)(?1)\\2|.)$",[trim]))), <<":abcdcba:a:">> = iolist_to_binary(join(re:split("abcdcba","^((.)(?1)\\2|.)$",[{parts, 2}]))), <<":abcdcba:a:">> = iolist_to_binary(join(re:split("abcdcba","^((.)(?1)\\2|.)$",[]))), <<":pqaabaaqp:p">> = iolist_to_binary(join(re:split("pqaabaaqp","^((.)(?1)\\2|.)$",[trim]))), <<":pqaabaaqp:p:">> = iolist_to_binary(join(re:split("pqaabaaqp","^((.)(?1)\\2|.)$",[{parts, 2}]))), <<":pqaabaaqp:p:">> = iolist_to_binary(join(re:split("pqaabaaqp","^((.)(?1)\\2|.)$",[]))), <<":ablewasiereisawelba:a">> = iolist_to_binary(join(re:split("ablewasiereisawelba","^((.)(?1)\\2|.)$",[trim]))), <<":ablewasiereisawelba:a:">> = iolist_to_binary(join(re:split("ablewasiereisawelba","^((.)(?1)\\2|.)$",[{parts, 2}]))), <<":ablewasiereisawelba:a:">> = iolist_to_binary(join(re:split("ablewasiereisawelba","^((.)(?1)\\2|.)$",[]))), <<"rhubarb">> = iolist_to_binary(join(re:split("rhubarb","^((.)(?1)\\2|.)$",[trim]))), <<"rhubarb">> = iolist_to_binary(join(re:split("rhubarb","^((.)(?1)\\2|.)$",[{parts, 2}]))), <<"rhubarb">> = iolist_to_binary(join(re:split("rhubarb","^((.)(?1)\\2|.)$",[]))), <<"the quick brown fox">> = iolist_to_binary(join(re:split("the quick brown fox","^((.)(?1)\\2|.)$",[trim]))), <<"the quick brown fox">> = iolist_to_binary(join(re:split("the quick brown fox","^((.)(?1)\\2|.)$",[{parts, 2}]))), <<"the quick brown fox">> = iolist_to_binary(join(re:split("the quick brown fox","^((.)(?1)\\2|.)$",[]))), <<"b:a:z">> = iolist_to_binary(join(re:split("baz","(a)(?<=b(?1))",[trim]))), <<"b:a:z">> = iolist_to_binary(join(re:split("baz","(a)(?<=b(?1))",[{parts, 2}]))), <<"b:a:z">> = iolist_to_binary(join(re:split("baz","(a)(?<=b(?1))",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(a)(?<=b(?1))",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(a)(?<=b(?1))",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(a)(?<=b(?1))",[]))), <<"caz">> = iolist_to_binary(join(re:split("caz","(a)(?<=b(?1))",[trim]))), <<"caz">> = iolist_to_binary(join(re:split("caz","(a)(?<=b(?1))",[{parts, 2}]))), <<"caz">> = iolist_to_binary(join(re:split("caz","(a)(?<=b(?1))",[]))), <<"zba:a:z">> = iolist_to_binary(join(re:split("zbaaz","(?<=b(?1))(a)",[trim]))), <<"zba:a:z">> = iolist_to_binary(join(re:split("zbaaz","(?<=b(?1))(a)",[{parts, 2}]))), <<"zba:a:z">> = iolist_to_binary(join(re:split("zbaaz","(?<=b(?1))(a)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=b(?1))(a)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=b(?1))(a)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=b(?1))(a)",[]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","(?<=b(?1))(a)",[trim]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","(?<=b(?1))(a)",[{parts, 2}]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","(?<=b(?1))(a)",[]))), <<"b:a:z">> = iolist_to_binary(join(re:split("baz","(?a)(?<=b(?&X))",[trim]))), <<"b:a:z">> = iolist_to_binary(join(re:split("baz","(?a)(?<=b(?&X))",[{parts, 2}]))), <<"b:a:z">> = iolist_to_binary(join(re:split("baz","(?a)(?<=b(?&X))",[]))), <<":abc">> = iolist_to_binary(join(re:split("abcabc","^(?|(abc)|(def))\\1",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","^(?|(abc)|(def))\\1",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","^(?|(abc)|(def))\\1",[]))), <<":def">> = iolist_to_binary(join(re:split("defdef","^(?|(abc)|(def))\\1",[trim]))), <<":def:">> = iolist_to_binary(join(re:split("defdef","^(?|(abc)|(def))\\1",[{parts, 2}]))), <<":def:">> = iolist_to_binary(join(re:split("defdef","^(?|(abc)|(def))\\1",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?|(abc)|(def))\\1",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?|(abc)|(def))\\1",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?|(abc)|(def))\\1",[]))), <<"abcdef">> = iolist_to_binary(join(re:split("abcdef","^(?|(abc)|(def))\\1",[trim]))), <<"abcdef">> = iolist_to_binary(join(re:split("abcdef","^(?|(abc)|(def))\\1",[{parts, 2}]))), <<"abcdef">> = iolist_to_binary(join(re:split("abcdef","^(?|(abc)|(def))\\1",[]))), <<"defabc">> = iolist_to_binary(join(re:split("defabc","^(?|(abc)|(def))\\1",[trim]))), <<"defabc">> = iolist_to_binary(join(re:split("defabc","^(?|(abc)|(def))\\1",[{parts, 2}]))), <<"defabc">> = iolist_to_binary(join(re:split("defabc","^(?|(abc)|(def))\\1",[]))), ok. run43() -> <<":abc">> = iolist_to_binary(join(re:split("abcabc","^(?|(abc)|(def))(?1)",[trim]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","^(?|(abc)|(def))(?1)",[{parts, 2}]))), <<":abc:">> = iolist_to_binary(join(re:split("abcabc","^(?|(abc)|(def))(?1)",[]))), <<":def">> = iolist_to_binary(join(re:split("defabc","^(?|(abc)|(def))(?1)",[trim]))), <<":def:">> = iolist_to_binary(join(re:split("defabc","^(?|(abc)|(def))(?1)",[{parts, 2}]))), <<":def:">> = iolist_to_binary(join(re:split("defabc","^(?|(abc)|(def))(?1)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?|(abc)|(def))(?1)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?|(abc)|(def))(?1)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?|(abc)|(def))(?1)",[]))), <<"defdef">> = iolist_to_binary(join(re:split("defdef","^(?|(abc)|(def))(?1)",[trim]))), <<"defdef">> = iolist_to_binary(join(re:split("defdef","^(?|(abc)|(def))(?1)",[{parts, 2}]))), <<"defdef">> = iolist_to_binary(join(re:split("defdef","^(?|(abc)|(def))(?1)",[]))), <<"abcdef">> = iolist_to_binary(join(re:split("abcdef","^(?|(abc)|(def))(?1)",[trim]))), <<"abcdef">> = iolist_to_binary(join(re:split("abcdef","^(?|(abc)|(def))(?1)",[{parts, 2}]))), <<"abcdef">> = iolist_to_binary(join(re:split("abcdef","^(?|(abc)|(def))(?1)",[]))), <<"A:C:D">> = iolist_to_binary(join(re:split("ABCD","(?:(?1)|B)(A(*F)|C)",[trim]))), <<"A:C:D">> = iolist_to_binary(join(re:split("ABCD","(?:(?1)|B)(A(*F)|C)",[{parts, 2}]))), <<"A:C:D">> = iolist_to_binary(join(re:split("ABCD","(?:(?1)|B)(A(*F)|C)",[]))), <<":C:D">> = iolist_to_binary(join(re:split("CCD","(?:(?1)|B)(A(*F)|C)",[trim]))), <<":C:D">> = iolist_to_binary(join(re:split("CCD","(?:(?1)|B)(A(*F)|C)",[{parts, 2}]))), <<":C:D">> = iolist_to_binary(join(re:split("CCD","(?:(?1)|B)(A(*F)|C)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?:(?1)|B)(A(*F)|C)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?:(?1)|B)(A(*F)|C)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?:(?1)|B)(A(*F)|C)",[]))), <<"CAD">> = iolist_to_binary(join(re:split("CAD","(?:(?1)|B)(A(*F)|C)",[trim]))), <<"CAD">> = iolist_to_binary(join(re:split("CAD","(?:(?1)|B)(A(*F)|C)",[{parts, 2}]))), <<"CAD">> = iolist_to_binary(join(re:split("CAD","(?:(?1)|B)(A(*F)|C)",[]))), <<":C:D">> = iolist_to_binary(join(re:split("CCD","^(?:(?1)|B)(A(*F)|C)",[trim]))), <<":C:D">> = iolist_to_binary(join(re:split("CCD","^(?:(?1)|B)(A(*F)|C)",[{parts, 2}]))), <<":C:D">> = iolist_to_binary(join(re:split("CCD","^(?:(?1)|B)(A(*F)|C)",[]))), <<":C:D">> = iolist_to_binary(join(re:split("BCD","^(?:(?1)|B)(A(*F)|C)",[trim]))), <<":C:D">> = iolist_to_binary(join(re:split("BCD","^(?:(?1)|B)(A(*F)|C)",[{parts, 2}]))), <<":C:D">> = iolist_to_binary(join(re:split("BCD","^(?:(?1)|B)(A(*F)|C)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:(?1)|B)(A(*F)|C)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:(?1)|B)(A(*F)|C)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:(?1)|B)(A(*F)|C)",[]))), <<"ABCD">> = iolist_to_binary(join(re:split("ABCD","^(?:(?1)|B)(A(*F)|C)",[trim]))), <<"ABCD">> = iolist_to_binary(join(re:split("ABCD","^(?:(?1)|B)(A(*F)|C)",[{parts, 2}]))), <<"ABCD">> = iolist_to_binary(join(re:split("ABCD","^(?:(?1)|B)(A(*F)|C)",[]))), <<"CAD">> = iolist_to_binary(join(re:split("CAD","^(?:(?1)|B)(A(*F)|C)",[trim]))), <<"CAD">> = iolist_to_binary(join(re:split("CAD","^(?:(?1)|B)(A(*F)|C)",[{parts, 2}]))), <<"CAD">> = iolist_to_binary(join(re:split("CAD","^(?:(?1)|B)(A(*F)|C)",[]))), <<"BAD">> = iolist_to_binary(join(re:split("BAD","^(?:(?1)|B)(A(*F)|C)",[trim]))), <<"BAD">> = iolist_to_binary(join(re:split("BAD","^(?:(?1)|B)(A(*F)|C)",[{parts, 2}]))), <<"BAD">> = iolist_to_binary(join(re:split("BAD","^(?:(?1)|B)(A(*F)|C)",[]))), <<":A:D">> = iolist_to_binary(join(re:split("AAD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[trim]))), <<":A:D">> = iolist_to_binary(join(re:split("AAD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[{parts, 2}]))), <<":A:D">> = iolist_to_binary(join(re:split("AAD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[]))), <<":C">> = iolist_to_binary(join(re:split("ACD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[trim]))), <<":C:">> = iolist_to_binary(join(re:split("ACD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[{parts, 2}]))), <<":C:">> = iolist_to_binary(join(re:split("ACD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[]))), <<":A:D">> = iolist_to_binary(join(re:split("BAD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[trim]))), <<":A:D">> = iolist_to_binary(join(re:split("BAD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[{parts, 2}]))), <<":A:D">> = iolist_to_binary(join(re:split("BAD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[]))), <<":C">> = iolist_to_binary(join(re:split("BCD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[trim]))), <<":C:">> = iolist_to_binary(join(re:split("BCD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[{parts, 2}]))), <<":C:">> = iolist_to_binary(join(re:split("BCD","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[]))), <<":A:X">> = iolist_to_binary(join(re:split("BAX","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[trim]))), <<":A:X">> = iolist_to_binary(join(re:split("BAX","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[{parts, 2}]))), <<":A:X">> = iolist_to_binary(join(re:split("BAX","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[]))), <<"ACX">> = iolist_to_binary(join(re:split("ACX","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[trim]))), <<"ACX">> = iolist_to_binary(join(re:split("ACX","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[{parts, 2}]))), <<"ACX">> = iolist_to_binary(join(re:split("ACX","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[trim]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[{parts, 2}]))), <<"ABC">> = iolist_to_binary(join(re:split("ABC","(?:(?1)|B)(A(*ACCEPT)XX|C)D",[]))), <<"">> = iolist_to_binary(join(re:split("BAC","(?(DEFINE)(A))B(?1)C",[trim]))), <<"::">> = iolist_to_binary(join(re:split("BAC","(?(DEFINE)(A))B(?1)C",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("BAC","(?(DEFINE)(A))B(?1)C",[]))), <<"">> = iolist_to_binary(join(re:split("BAAC","(?(DEFINE)((A)\\2))B(?1)C",[trim]))), <<":::">> = iolist_to_binary(join(re:split("BAAC","(?(DEFINE)((A)\\2))B(?1)C",[{parts, 2}]))), <<":::">> = iolist_to_binary(join(re:split("BAAC","(?(DEFINE)((A)\\2))B(?1)C",[]))), <<":(ab(cd)ef):ef">> = iolist_to_binary(join(re:split("(ab(cd)ef)","(? \\( ( [^()]++ | (?&pn) )* \\) )",[extended, trim]))), <<":(ab(cd)ef):ef:">> = iolist_to_binary(join(re:split("(ab(cd)ef)","(? \\( ( [^()]++ | (?&pn) )* \\) )",[extended, {parts, 2}]))), <<":(ab(cd)ef):ef:">> = iolist_to_binary(join(re:split("(ab(cd)ef)","(? \\( ( [^()]++ | (?&pn) )* \\) )",[extended]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?=a(*SKIP)b|ac)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?=a(*SKIP)b|ac)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?=a(*SKIP)b|ac)",[]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?=a(*SKIP)b|ac)",[trim]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?=a(*SKIP)b|ac)",[{parts, 2}]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?=a(*SKIP)b|ac)",[]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(?=a(*PRUNE)b)",[trim]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(?=a(*PRUNE)b)",[{parts, 2}]))), <<"ab">> = iolist_to_binary(join(re:split("ab","^(?=a(*PRUNE)b)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?=a(*PRUNE)b)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?=a(*PRUNE)b)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?=a(*PRUNE)b)",[]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?=a(*PRUNE)b)",[trim]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?=a(*PRUNE)b)",[{parts, 2}]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?=a(*PRUNE)b)",[]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?=a(*ACCEPT)b)",[trim]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?=a(*ACCEPT)b)",[{parts, 2}]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?=a(*ACCEPT)b)",[]))), <<"a">> = iolist_to_binary(join(re:split("ab","(?>a\\Kb)",[trim]))), <<"a:">> = iolist_to_binary(join(re:split("ab","(?>a\\Kb)",[{parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("ab","(?>a\\Kb)",[]))), <<"a:ab">> = iolist_to_binary(join(re:split("ab","((?>a\\Kb))",[trim]))), <<"a:ab:">> = iolist_to_binary(join(re:split("ab","((?>a\\Kb))",[{parts, 2}]))), <<"a:ab:">> = iolist_to_binary(join(re:split("ab","((?>a\\Kb))",[]))), <<"a:ab">> = iolist_to_binary(join(re:split("ab","(a\\Kb)",[trim]))), <<"a:ab:">> = iolist_to_binary(join(re:split("ab","(a\\Kb)",[{parts, 2}]))), <<"a:ab:">> = iolist_to_binary(join(re:split("ab","(a\\Kb)",[]))), <<"">> = iolist_to_binary(join(re:split("ac","^a\\Kcz|ac",[trim]))), <<":">> = iolist_to_binary(join(re:split("ac","^a\\Kcz|ac",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ac","^a\\Kcz|ac",[]))), <<"">> = iolist_to_binary(join(re:split("ab","(?>a\\Kbz|ab)",[trim]))), <<":">> = iolist_to_binary(join(re:split("ab","(?>a\\Kbz|ab)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ab","(?>a\\Kbz|ab)",[]))), <<"a">> = iolist_to_binary(join(re:split("ab","^(?&t)(?(DEFINE)(?a\\Kb))$",[trim]))), <<"a::">> = iolist_to_binary(join(re:split("ab","^(?&t)(?(DEFINE)(?a\\Kb))$",[{parts, 2}]))), <<"a::">> = iolist_to_binary(join(re:split("ab","^(?&t)(?(DEFINE)(?a\\Kb))$",[]))), <<":c">> = iolist_to_binary(join(re:split("a(b)c","^([^()]|\\((?1)*\\))*$",[trim]))), <<":c:">> = iolist_to_binary(join(re:split("a(b)c","^([^()]|\\((?1)*\\))*$",[{parts, 2}]))), <<":c:">> = iolist_to_binary(join(re:split("a(b)c","^([^()]|\\((?1)*\\))*$",[]))), <<":e">> = iolist_to_binary(join(re:split("a(b(c)d)e","^([^()]|\\((?1)*\\))*$",[trim]))), <<":e:">> = iolist_to_binary(join(re:split("a(b(c)d)e","^([^()]|\\((?1)*\\))*$",[{parts, 2}]))), <<":e:">> = iolist_to_binary(join(re:split("a(b(c)d)e","^([^()]|\\((?1)*\\))*$",[]))), <<":0">> = iolist_to_binary(join(re:split("0","(?P(?P0)(?P>L1)|(?P>L2))",[trim]))), <<":0::">> = iolist_to_binary(join(re:split("0","(?P(?P0)(?P>L1)|(?P>L2))",[{parts, 2}]))), <<":0::">> = iolist_to_binary(join(re:split("0","(?P(?P0)(?P>L1)|(?P>L2))",[]))), <<":00:0">> = iolist_to_binary(join(re:split("00","(?P(?P0)(?P>L1)|(?P>L2))",[trim]))), <<":00:0:">> = iolist_to_binary(join(re:split("00","(?P(?P0)(?P>L1)|(?P>L2))",[{parts, 2}]))), <<":00:0:">> = iolist_to_binary(join(re:split("00","(?P(?P0)(?P>L1)|(?P>L2))",[]))), <<":0000:0">> = iolist_to_binary(join(re:split("0000","(?P(?P0)(?P>L1)|(?P>L2))",[trim]))), <<":0000:0:">> = iolist_to_binary(join(re:split("0000","(?P(?P0)(?P>L1)|(?P>L2))",[{parts, 2}]))), <<":0000:0:">> = iolist_to_binary(join(re:split("0000","(?P(?P0)(?P>L1)|(?P>L2))",[]))), <<":0:0">> = iolist_to_binary(join(re:split("0","(?P(?P0)|(?P>L2)(?P>L1))",[trim]))), <<":0:0:">> = iolist_to_binary(join(re:split("0","(?P(?P0)|(?P>L2)(?P>L1))",[{parts, 2}]))), <<":0:0:">> = iolist_to_binary(join(re:split("0","(?P(?P0)|(?P>L2)(?P>L1))",[]))), <<":0:0::0:0">> = iolist_to_binary(join(re:split("00","(?P(?P0)|(?P>L2)(?P>L1))",[trim]))), <<":0:0:0">> = iolist_to_binary(join(re:split("00","(?P(?P0)|(?P>L2)(?P>L1))",[{parts, 2}]))), <<":0:0::0:0:">> = iolist_to_binary(join(re:split("00","(?P(?P0)|(?P>L2)(?P>L1))",[]))), <<":0:0::0:0::0:0::0:0">> = iolist_to_binary(join(re:split("0000","(?P(?P0)|(?P>L2)(?P>L1))",[trim]))), <<":0:0:000">> = iolist_to_binary(join(re:split("0000","(?P(?P0)|(?P>L2)(?P>L1))",[{parts, 2}]))), <<":0:0::0:0::0:0::0:0:">> = iolist_to_binary(join(re:split("0000","(?P(?P0)|(?P>L2)(?P>L1))",[]))), ok. run44() -> <<"ACABX">> = iolist_to_binary(join(re:split("ACABX","A(*COMMIT)(B|D)",[trim]))), <<"ACABX">> = iolist_to_binary(join(re:split("ACABX","A(*COMMIT)(B|D)",[{parts, 2}]))), <<"ACABX">> = iolist_to_binary(join(re:split("ACABX","A(*COMMIT)(B|D)",[]))), <<":A:B:C:DEFG">> = iolist_to_binary(join(re:split("ABCDEFG","(*COMMIT)(A|P)(B|P)(C|P)",[trim]))), <<":A:B:C:DEFG">> = iolist_to_binary(join(re:split("ABCDEFG","(*COMMIT)(A|P)(B|P)(C|P)",[{parts, 2}]))), <<":A:B:C:DEFG">> = iolist_to_binary(join(re:split("ABCDEFG","(*COMMIT)(A|P)(B|P)(C|P)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(*COMMIT)(A|P)(B|P)(C|P)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(*COMMIT)(A|P)(B|P)(C|P)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(*COMMIT)(A|P)(B|P)(C|P)",[]))), <<"DEFGABC">> = iolist_to_binary(join(re:split("DEFGABC","(*COMMIT)(A|P)(B|P)(C|P)",[trim]))), <<"DEFGABC">> = iolist_to_binary(join(re:split("DEFGABC","(*COMMIT)(A|P)(B|P)(C|P)",[{parts, 2}]))), <<"DEFGABC">> = iolist_to_binary(join(re:split("DEFGABC","(*COMMIT)(A|P)(B|P)(C|P)",[]))), <<":a">> = iolist_to_binary(join(re:split("abbb","(\\w+)(?>b(*COMMIT))\\w{2}",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("abbb","(\\w+)(?>b(*COMMIT))\\w{2}",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("abbb","(\\w+)(?>b(*COMMIT))\\w{2}",[]))), <<"abbb">> = iolist_to_binary(join(re:split("abbb","(\\w+)b(*COMMIT)\\w{2}",[trim]))), <<"abbb">> = iolist_to_binary(join(re:split("abbb","(\\w+)b(*COMMIT)\\w{2}",[{parts, 2}]))), <<"abbb">> = iolist_to_binary(join(re:split("abbb","(\\w+)b(*COMMIT)\\w{2}",[]))), <<"b::c">> = iolist_to_binary(join(re:split("bac","(?&t)(?#()(?(DEFINE)(?a))",[trim]))), <<"b::c">> = iolist_to_binary(join(re:split("bac","(?&t)(?#()(?(DEFINE)(?a))",[{parts, 2}]))), <<"b::c">> = iolist_to_binary(join(re:split("bac","(?&t)(?#()(?(DEFINE)(?a))",[]))), <<"yes">> = iolist_to_binary(join(re:split("yes","(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?",[trim]))), <<"yes">> = iolist_to_binary(join(re:split("yes","(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?",[{parts, 2}]))), <<"yes">> = iolist_to_binary(join(re:split("yes","(?>(*COMMIT)(?>yes|no)(*THEN)(*F))?",[]))), <<"yes">> = iolist_to_binary(join(re:split("yes","(?>(*COMMIT)(yes|no)(*THEN)(*F))?",[trim]))), <<"yes">> = iolist_to_binary(join(re:split("yes","(?>(*COMMIT)(yes|no)(*THEN)(*F))?",[{parts, 2}]))), <<"yes">> = iolist_to_binary(join(re:split("yes","(?>(*COMMIT)(yes|no)(*THEN)(*F))?",[]))), <<"">> = iolist_to_binary(join(re:split("bc","b?(*SKIP)c",[trim]))), <<":">> = iolist_to_binary(join(re:split("bc","b?(*SKIP)c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("bc","b?(*SKIP)c",[]))), <<"a">> = iolist_to_binary(join(re:split("abc","b?(*SKIP)c",[trim]))), <<"a:">> = iolist_to_binary(join(re:split("abc","b?(*SKIP)c",[{parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("abc","b?(*SKIP)c",[]))), ok. run45() -> <<"a">> = iolist_to_binary(join(re:split("a","(*SKIP)bc",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","(*SKIP)bc",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","(*SKIP)bc",[]))), <<"a">> = iolist_to_binary(join(re:split("a","(*SKIP)b",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","(*SKIP)b",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","(*SKIP)b",[]))), <<"x::x::x">> = iolist_to_binary(join(re:split("xxx","(?P(?P=abn)xxx|)+",[trim]))), <<"x::xx">> = iolist_to_binary(join(re:split("xxx","(?P(?P=abn)xxx|)+",[{parts, 2}]))), <<"x::x::x::">> = iolist_to_binary(join(re:split("xxx","(?P(?P=abn)xxx|)+",[]))), <<":a">> = iolist_to_binary(join(re:split("aa","(?i:([^b]))(?1)",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aa","(?i:([^b]))(?1)",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aa","(?i:([^b]))(?1)",[]))), <<":a">> = iolist_to_binary(join(re:split("aA","(?i:([^b]))(?1)",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aA","(?i:([^b]))(?1)",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aA","(?i:([^b]))(?1)",[]))), <<":*:: ::a::l::r">> = iolist_to_binary(join(re:split("** Failers","(?i:([^b]))(?1)",[trim]))), <<":*: Failers">> = iolist_to_binary(join(re:split("** Failers","(?i:([^b]))(?1)",[{parts, 2}]))), <<":*:: ::a::l::r:">> = iolist_to_binary(join(re:split("** Failers","(?i:([^b]))(?1)",[]))), <<"ab">> = iolist_to_binary(join(re:split("ab","(?i:([^b]))(?1)",[trim]))), <<"ab">> = iolist_to_binary(join(re:split("ab","(?i:([^b]))(?1)",[{parts, 2}]))), <<"ab">> = iolist_to_binary(join(re:split("ab","(?i:([^b]))(?1)",[]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?i:([^b]))(?1)",[trim]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?i:([^b]))(?1)",[{parts, 2}]))), <<"aB">> = iolist_to_binary(join(re:split("aB","(?i:([^b]))(?1)",[]))), <<"Ba">> = iolist_to_binary(join(re:split("Ba","(?i:([^b]))(?1)",[trim]))), <<"Ba">> = iolist_to_binary(join(re:split("Ba","(?i:([^b]))(?1)",[{parts, 2}]))), <<"Ba">> = iolist_to_binary(join(re:split("Ba","(?i:([^b]))(?1)",[]))), <<"ba">> = iolist_to_binary(join(re:split("ba","(?i:([^b]))(?1)",[trim]))), <<"ba">> = iolist_to_binary(join(re:split("ba","(?i:([^b]))(?1)",[{parts, 2}]))), <<"ba">> = iolist_to_binary(join(re:split("ba","(?i:([^b]))(?1)",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaaaX","^(?&t)*+(?(DEFINE)(?a))\\w$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("aaaaaaX","^(?&t)*+(?(DEFINE)(?a))\\w$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("aaaaaaX","^(?&t)*+(?(DEFINE)(?a))\\w$",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?&t)*+(?(DEFINE)(?a))\\w$",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?&t)*+(?(DEFINE)(?a))\\w$",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?&t)*+(?(DEFINE)(?a))\\w$",[]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(?&t)*+(?(DEFINE)(?a))\\w$",[trim]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(?&t)*+(?(DEFINE)(?a))\\w$",[{parts, 2}]))), <<"aaaaaa">> = iolist_to_binary(join(re:split("aaaaaa","^(?&t)*+(?(DEFINE)(?a))\\w$",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaaaX","^(?&t)*(?(DEFINE)(?a))\\w$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("aaaaaaX","^(?&t)*(?(DEFINE)(?a))\\w$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("aaaaaaX","^(?&t)*(?(DEFINE)(?a))\\w$",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaaa","^(?&t)*(?(DEFINE)(?a))\\w$",[trim]))), <<"::">> = iolist_to_binary(join(re:split("aaaaaa","^(?&t)*(?(DEFINE)(?a))\\w$",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("aaaaaa","^(?&t)*(?(DEFINE)(?a))\\w$",[]))), <<":a:X">> = iolist_to_binary(join(re:split("aaaaX","^(a)*+(\\w)",[trim]))), <<":a:X:">> = iolist_to_binary(join(re:split("aaaaX","^(a)*+(\\w)",[{parts, 2}]))), <<":a:X:">> = iolist_to_binary(join(re:split("aaaaX","^(a)*+(\\w)",[]))), <<"::Y:Z">> = iolist_to_binary(join(re:split("YZ","^(a)*+(\\w)",[trim]))), <<"::Y:Z">> = iolist_to_binary(join(re:split("YZ","^(a)*+(\\w)",[{parts, 2}]))), <<"::Y:Z">> = iolist_to_binary(join(re:split("YZ","^(a)*+(\\w)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a)*+(\\w)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a)*+(\\w)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a)*+(\\w)",[]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(a)*+(\\w)",[trim]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(a)*+(\\w)",[{parts, 2}]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(a)*+(\\w)",[]))), <<":X">> = iolist_to_binary(join(re:split("aaaaX","^(?:a)*+(\\w)",[trim]))), <<":X:">> = iolist_to_binary(join(re:split("aaaaX","^(?:a)*+(\\w)",[{parts, 2}]))), <<":X:">> = iolist_to_binary(join(re:split("aaaaX","^(?:a)*+(\\w)",[]))), <<":Y:Z">> = iolist_to_binary(join(re:split("YZ","^(?:a)*+(\\w)",[trim]))), <<":Y:Z">> = iolist_to_binary(join(re:split("YZ","^(?:a)*+(\\w)",[{parts, 2}]))), <<":Y:Z">> = iolist_to_binary(join(re:split("YZ","^(?:a)*+(\\w)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:a)*+(\\w)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:a)*+(\\w)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:a)*+(\\w)",[]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(?:a)*+(\\w)",[trim]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(?:a)*+(\\w)",[{parts, 2}]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(?:a)*+(\\w)",[]))), <<":a:X">> = iolist_to_binary(join(re:split("aaaaX","^(a)++(\\w)",[trim]))), <<":a:X:">> = iolist_to_binary(join(re:split("aaaaX","^(a)++(\\w)",[{parts, 2}]))), <<":a:X:">> = iolist_to_binary(join(re:split("aaaaX","^(a)++(\\w)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a)++(\\w)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a)++(\\w)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a)++(\\w)",[]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(a)++(\\w)",[trim]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(a)++(\\w)",[{parts, 2}]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(a)++(\\w)",[]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(a)++(\\w)",[trim]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(a)++(\\w)",[{parts, 2}]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(a)++(\\w)",[]))), <<":X">> = iolist_to_binary(join(re:split("aaaaX","^(?:a)++(\\w)",[trim]))), <<":X:">> = iolist_to_binary(join(re:split("aaaaX","^(?:a)++(\\w)",[{parts, 2}]))), <<":X:">> = iolist_to_binary(join(re:split("aaaaX","^(?:a)++(\\w)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:a)++(\\w)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:a)++(\\w)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:a)++(\\w)",[]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(?:a)++(\\w)",[trim]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(?:a)++(\\w)",[{parts, 2}]))), <<"aaaa">> = iolist_to_binary(join(re:split("aaaa","^(?:a)++(\\w)",[]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(?:a)++(\\w)",[trim]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(?:a)++(\\w)",[{parts, 2}]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(?:a)++(\\w)",[]))), <<":a:a:aaX">> = iolist_to_binary(join(re:split("aaaaX","^(a)?+(\\w)",[trim]))), <<":a:a:aaX">> = iolist_to_binary(join(re:split("aaaaX","^(a)?+(\\w)",[{parts, 2}]))), <<":a:a:aaX">> = iolist_to_binary(join(re:split("aaaaX","^(a)?+(\\w)",[]))), <<"::Y:Z">> = iolist_to_binary(join(re:split("YZ","^(a)?+(\\w)",[trim]))), <<"::Y:Z">> = iolist_to_binary(join(re:split("YZ","^(a)?+(\\w)",[{parts, 2}]))), <<"::Y:Z">> = iolist_to_binary(join(re:split("YZ","^(a)?+(\\w)",[]))), <<":a:aaX">> = iolist_to_binary(join(re:split("aaaaX","^(?:a)?+(\\w)",[trim]))), <<":a:aaX">> = iolist_to_binary(join(re:split("aaaaX","^(?:a)?+(\\w)",[{parts, 2}]))), <<":a:aaX">> = iolist_to_binary(join(re:split("aaaaX","^(?:a)?+(\\w)",[]))), <<":Y:Z">> = iolist_to_binary(join(re:split("YZ","^(?:a)?+(\\w)",[trim]))), <<":Y:Z">> = iolist_to_binary(join(re:split("YZ","^(?:a)?+(\\w)",[{parts, 2}]))), <<":Y:Z">> = iolist_to_binary(join(re:split("YZ","^(?:a)?+(\\w)",[]))), <<":a:X">> = iolist_to_binary(join(re:split("aaaaX","^(a){2,}+(\\w)",[trim]))), <<":a:X:">> = iolist_to_binary(join(re:split("aaaaX","^(a){2,}+(\\w)",[{parts, 2}]))), <<":a:X:">> = iolist_to_binary(join(re:split("aaaaX","^(a){2,}+(\\w)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a){2,}+(\\w)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a){2,}+(\\w)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(a){2,}+(\\w)",[]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(a){2,}+(\\w)",[trim]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(a){2,}+(\\w)",[{parts, 2}]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(a){2,}+(\\w)",[]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(a){2,}+(\\w)",[trim]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(a){2,}+(\\w)",[{parts, 2}]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(a){2,}+(\\w)",[]))), <<":X">> = iolist_to_binary(join(re:split("aaaaX","^(?:a){2,}+(\\w)",[trim]))), <<":X:">> = iolist_to_binary(join(re:split("aaaaX","^(?:a){2,}+(\\w)",[{parts, 2}]))), <<":X:">> = iolist_to_binary(join(re:split("aaaaX","^(?:a){2,}+(\\w)",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:a){2,}+(\\w)",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:a){2,}+(\\w)",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","^(?:a){2,}+(\\w)",[]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(?:a){2,}+(\\w)",[trim]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(?:a){2,}+(\\w)",[{parts, 2}]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^(?:a){2,}+(\\w)",[]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(?:a){2,}+(\\w)",[trim]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(?:a){2,}+(\\w)",[{parts, 2}]))), <<"YZ">> = iolist_to_binary(join(re:split("YZ","^(?:a){2,}+(\\w)",[]))), <<"">> = iolist_to_binary(join(re:split("b","(a|)*(?1)b",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","(a|)*(?1)b",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","(a|)*(?1)b",[]))), <<"">> = iolist_to_binary(join(re:split("ab","(a|)*(?1)b",[trim]))), <<"::">> = iolist_to_binary(join(re:split("ab","(a|)*(?1)b",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("ab","(a|)*(?1)b",[]))), <<"">> = iolist_to_binary(join(re:split("aab","(a|)*(?1)b",[trim]))), <<"::">> = iolist_to_binary(join(re:split("aab","(a|)*(?1)b",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("aab","(a|)*(?1)b",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(a)++(?1)b",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(a)++(?1)b",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(a)++(?1)b",[]))), <<"ab">> = iolist_to_binary(join(re:split("ab","(a)++(?1)b",[trim]))), <<"ab">> = iolist_to_binary(join(re:split("ab","(a)++(?1)b",[{parts, 2}]))), <<"ab">> = iolist_to_binary(join(re:split("ab","(a)++(?1)b",[]))), <<"aab">> = iolist_to_binary(join(re:split("aab","(a)++(?1)b",[trim]))), <<"aab">> = iolist_to_binary(join(re:split("aab","(a)++(?1)b",[{parts, 2}]))), <<"aab">> = iolist_to_binary(join(re:split("aab","(a)++(?1)b",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(a)*+(?1)b",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(a)*+(?1)b",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(a)*+(?1)b",[]))), <<"ab">> = iolist_to_binary(join(re:split("ab","(a)*+(?1)b",[trim]))), <<"ab">> = iolist_to_binary(join(re:split("ab","(a)*+(?1)b",[{parts, 2}]))), <<"ab">> = iolist_to_binary(join(re:split("ab","(a)*+(?1)b",[]))), <<"aab">> = iolist_to_binary(join(re:split("aab","(a)*+(?1)b",[trim]))), <<"aab">> = iolist_to_binary(join(re:split("aab","(a)*+(?1)b",[{parts, 2}]))), <<"aab">> = iolist_to_binary(join(re:split("aab","(a)*+(?1)b",[]))), <<"">> = iolist_to_binary(join(re:split("b","(?1)(?:(b)){0}",[trim]))), <<"::">> = iolist_to_binary(join(re:split("b","(?1)(?:(b)){0}",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("b","(?1)(?:(b)){0}",[]))), <<":foo(bar(baz)+baz(bop)):(bar(baz)+baz(bop)):bar(baz)+baz(bop)">> = iolist_to_binary(join(re:split("foo(bar(baz)+baz(bop))","(foo ( \\( ((?:(?> [^()]+ )|(?2))*) \\) ) )",[extended, trim]))), <<":foo(bar(baz)+baz(bop)):(bar(baz)+baz(bop)):bar(baz)+baz(bop):">> = iolist_to_binary(join(re:split("foo(bar(baz)+baz(bop))","(foo ( \\( ((?:(?> [^()]+ )|(?2))*) \\) ) )",[extended, {parts, 2}]))), <<":foo(bar(baz)+baz(bop)):(bar(baz)+baz(bop)):bar(baz)+baz(bop):">> = iolist_to_binary(join(re:split("foo(bar(baz)+baz(bop))","(foo ( \\( ((?:(?> [^()]+ )|(?2))*) \\) ) )",[extended]))), <<":AB:B">> = iolist_to_binary(join(re:split("AB","(A (A|B(*ACCEPT)|C) D)(E)",[extended, trim]))), <<":AB:B::">> = iolist_to_binary(join(re:split("AB","(A (A|B(*ACCEPT)|C) D)(E)",[extended, {parts, 2}]))), <<":AB:B::">> = iolist_to_binary(join(re:split("AB","(A (A|B(*ACCEPT)|C) D)(E)",[extended]))), ok. run46() -> <<":a">> = iolist_to_binary(join(re:split("ba","\\A.*?(a|bc)",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("ba","\\A.*?(a|bc)",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("ba","\\A.*?(a|bc)",[]))), <<"">> = iolist_to_binary(join(re:split("ba","\\A.*?(?:a|bc)++",[trim]))), <<":">> = iolist_to_binary(join(re:split("ba","\\A.*?(?:a|bc)++",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ba","\\A.*?(?:a|bc)++",[]))), <<":a">> = iolist_to_binary(join(re:split("ba","\\A.*?(a|bc)++",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("ba","\\A.*?(a|bc)++",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("ba","\\A.*?(a|bc)++",[]))), <<"">> = iolist_to_binary(join(re:split("ba","\\A.*?(?:a|bc|d)",[trim]))), <<":">> = iolist_to_binary(join(re:split("ba","\\A.*?(?:a|bc|d)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ba","\\A.*?(?:a|bc|d)",[]))), <<":b:eetle">> = iolist_to_binary(join(re:split("beetle","(?:(b))++",[trim]))), <<":b:eetle">> = iolist_to_binary(join(re:split("beetle","(?:(b))++",[{parts, 2}]))), <<":b:eetle">> = iolist_to_binary(join(re:split("beetle","(?:(b))++",[]))), <<":a">> = iolist_to_binary(join(re:split("a","(?(?=(a(*ACCEPT)z))a)",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("a","(?(?=(a(*ACCEPT)z))a)",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("a","(?(?=(a(*ACCEPT)z))a)",[]))), <<":a">> = iolist_to_binary(join(re:split("aaaab","^(a)(?1)+ab",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaaab","^(a)(?1)+ab",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaaab","^(a)(?1)+ab",[]))), <<"aaaab">> = iolist_to_binary(join(re:split("aaaab","^(a)(?1)++ab",[trim]))), <<"aaaab">> = iolist_to_binary(join(re:split("aaaab","^(a)(?1)++ab",[{parts, 2}]))), <<"aaaab">> = iolist_to_binary(join(re:split("aaaab","^(a)(?1)++ab",[]))), <<"::ckgammon">> = iolist_to_binary(join(re:split("backgammon","(?(DEFINE)(a))?b(?1)",[trim]))), <<"::ckgammon">> = iolist_to_binary(join(re:split("backgammon","(?(DEFINE)(a))?b(?1)",[{parts, 2}]))), <<"::ckgammon">> = iolist_to_binary(join(re:split("backgammon","(?(DEFINE)(a))?b(?1)",[]))), <<": def">> = iolist_to_binary(join(re:split("abc def","^\\N+",[trim]))), <<": def">> = iolist_to_binary(join(re:split("abc def","^\\N+",[{parts,2}]))), <<": def">> = iolist_to_binary(join(re:split("abc def","^\\N+",[]))), <<": def">> = iolist_to_binary(join(re:split("abc def","^\\N{1,}",[trim]))), <<": def">> = iolist_to_binary(join(re:split("abc def","^\\N{1,}",[{parts,2}]))), <<": def">> = iolist_to_binary(join(re:split("abc def","^\\N{1,}",[]))), <<":cde">> = iolist_to_binary(join(re:split("aaaabcde","(?(R)a+|(?R)b)",[trim]))), <<":cde">> = iolist_to_binary(join(re:split("aaaabcde","(?(R)a+|(?R)b)",[{parts, 2}]))), <<":cde">> = iolist_to_binary(join(re:split("aaaabcde","(?(R)a+|(?R)b)",[]))), <<":aaaa:cde">> = iolist_to_binary(join(re:split("aaaabcde","(?(R)a+|((?R))b)",[trim]))), <<":aaaa:cde">> = iolist_to_binary(join(re:split("aaaabcde","(?(R)a+|((?R))b)",[{parts, 2}]))), <<":aaaa:cde">> = iolist_to_binary(join(re:split("aaaabcde","(?(R)a+|((?R))b)",[]))), <<":aaaab:cde">> = iolist_to_binary(join(re:split("aaaabcde","((?(R)a+|(?1)b))",[trim]))), <<":aaaab:cde">> = iolist_to_binary(join(re:split("aaaabcde","((?(R)a+|(?1)b))",[{parts, 2}]))), <<":aaaab:cde">> = iolist_to_binary(join(re:split("aaaabcde","((?(R)a+|(?1)b))",[]))), <<":aaaab:cde">> = iolist_to_binary(join(re:split("aaaabcde","((?(R1)a+|(?1)b))",[trim]))), <<":aaaab:cde">> = iolist_to_binary(join(re:split("aaaabcde","((?(R1)a+|(?1)b))",[{parts, 2}]))), <<":aaaab:cde">> = iolist_to_binary(join(re:split("aaaabcde","((?(R1)a+|(?1)b))",[]))), <<":a">> = iolist_to_binary(join(re:split("aaa","((?(R)a|(?1)))*",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","((?(R)a|(?1)))*",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","((?(R)a|(?1)))*",[]))), <<":a">> = iolist_to_binary(join(re:split("aaa","((?(R)a|(?1)))+",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","((?(R)a|(?1)))+",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("aaa","((?(R)a|(?1)))+",[]))), <<"">> = iolist_to_binary(join(re:split("a","(?>(?&t)c|(?&t))(?(DEFINE)(?a|b(*PRUNE)c))",[trim]))), <<"::">> = iolist_to_binary(join(re:split("a","(?>(?&t)c|(?&t))(?(DEFINE)(?a|b(*PRUNE)c))",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("a","(?>(?&t)c|(?&t))(?(DEFINE)(?a|b(*PRUNE)c))",[]))), <<"b">> = iolist_to_binary(join(re:split("ba","(?>(?&t)c|(?&t))(?(DEFINE)(?a|b(*PRUNE)c))",[trim]))), <<"b::">> = iolist_to_binary(join(re:split("ba","(?>(?&t)c|(?&t))(?(DEFINE)(?a|b(*PRUNE)c))",[{parts, 2}]))), <<"b::">> = iolist_to_binary(join(re:split("ba","(?>(?&t)c|(?&t))(?(DEFINE)(?a|b(*PRUNE)c))",[]))), <<"bb">> = iolist_to_binary(join(re:split("bba","(?>(?&t)c|(?&t))(?(DEFINE)(?a|b(*PRUNE)c))",[trim]))), <<"bb::">> = iolist_to_binary(join(re:split("bba","(?>(?&t)c|(?&t))(?(DEFINE)(?a|b(*PRUNE)c))",[{parts, 2}]))), <<"bb::">> = iolist_to_binary(join(re:split("bba","(?>(?&t)c|(?&t))(?(DEFINE)(?a|b(*PRUNE)c))",[]))), ok. run47() -> <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b) c",[extended, trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b) c",[extended, {parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b) c",[extended]))), <<":ab">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b|(*F)) c",[extended, trim]))), <<":ab:">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b|(*F)) c",[extended, {parts, 2}]))), <<":ab:">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b|(*F)) c",[extended]))), <<":ab:ab">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b) | (*F) ) c",[extended, trim]))), <<":ab:ab:">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b) | (*F) ) c",[extended, {parts, 2}]))), <<":ab:ab:">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b) | (*F) ) c",[extended]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b) ) c",[extended, trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b) ) c",[extended, {parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b) ) c",[extended]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b) c",[extended, trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b) c",[extended, {parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b) c",[extended]))), <<"">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b|(*F)) c",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b|(*F)) c",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b|(*F)) c",[extended]))), <<"">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b) | (*F) ) c",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b) | (*F) ) c",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b) | (*F) ) c",[extended]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b) ) c",[extended, trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b) ) c",[extended, {parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b) ) c",[extended]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?>a(*THEN)b) c",[extended, trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?>a(*THEN)b) c",[extended, {parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?>a(*THEN)b) c",[extended]))), <<"">> = iolist_to_binary(join(re:split("aabc","^.*? (?>a(*THEN)b|(*F)) c",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?>a(*THEN)b|(*F)) c",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?>a(*THEN)b|(*F)) c",[extended]))), <<"">> = iolist_to_binary(join(re:split("aabc","^.*? (?> (?>a(*THEN)b) | (*F) ) c",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?> (?>a(*THEN)b) | (*F) ) c",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?> (?>a(*THEN)b) | (*F) ) c",[extended]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?> (?>a(*THEN)b) ) c",[extended, trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?> (?>a(*THEN)b) ) c",[extended, {parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?> (?>a(*THEN)b) ) c",[extended]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b)++ c",[extended, trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b)++ c",[extended, {parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b)++ c",[extended]))), <<":ab">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b|(*F))++ c",[extended, trim]))), <<":ab:">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b|(*F))++ c",[extended, {parts, 2}]))), <<":ab:">> = iolist_to_binary(join(re:split("aabc","^.*? (a(*THEN)b|(*F))++ c",[extended]))), <<":ab:ab">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b)++ | (*F) )++ c",[extended, trim]))), <<":ab:ab:">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b)++ | (*F) )++ c",[extended, {parts, 2}]))), <<":ab:ab:">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b)++ | (*F) )++ c",[extended]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b)++ )++ c",[extended, trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b)++ )++ c",[extended, {parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? ( (a(*THEN)b)++ )++ c",[extended]))), ok. run48() -> <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b)++ c",[extended, trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b)++ c",[extended, {parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b)++ c",[extended]))), <<"">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b|(*F))++ c",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b|(*F))++ c",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?:a(*THEN)b|(*F))++ c",[extended]))), <<"">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b)++ | (*F) )++ c",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b)++ | (*F) )++ c",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b)++ | (*F) )++ c",[extended]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b)++ )++ c",[extended, trim]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b)++ )++ c",[extended, {parts, 2}]))), <<"aabc">> = iolist_to_binary(join(re:split("aabc","^.*? (?: (?:a(*THEN)b)++ )++ c",[extended]))), <<"">> = iolist_to_binary(join(re:split("ac","^(?(?=a(*THEN)b)ab|ac)",[trim]))), <<":">> = iolist_to_binary(join(re:split("ac","^(?(?=a(*THEN)b)ab|ac)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ac","^(?(?=a(*THEN)b)ab|ac)",[]))), <<"ba">> = iolist_to_binary(join(re:split("ba","^.*?(?(?=a)a|b(*THEN)c)",[trim]))), <<"ba">> = iolist_to_binary(join(re:split("ba","^.*?(?(?=a)a|b(*THEN)c)",[{parts, 2}]))), <<"ba">> = iolist_to_binary(join(re:split("ba","^.*?(?(?=a)a|b(*THEN)c)",[]))), <<"">> = iolist_to_binary(join(re:split("ba","^.*?(?:(?(?=a)a|b(*THEN)c)|d)",[trim]))), <<":">> = iolist_to_binary(join(re:split("ba","^.*?(?:(?(?=a)a|b(*THEN)c)|d)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ba","^.*?(?:(?(?=a)a|b(*THEN)c)|d)",[]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^.*?(?(?=a)a(*THEN)b|c)",[trim]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^.*?(?(?=a)a(*THEN)b|c)",[{parts, 2}]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^.*?(?(?=a)a(*THEN)b|c)",[]))), <<":abc">> = iolist_to_binary(join(re:split("aabc","^.*(?=a(*THEN)b)",[trim]))), <<":abc">> = iolist_to_binary(join(re:split("aabc","^.*(?=a(*THEN)b)",[{parts, 2}]))), <<":abc">> = iolist_to_binary(join(re:split("aabc","^.*(?=a(*THEN)b)",[]))), <<"xa:d">> = iolist_to_binary(join(re:split("xacd","(?<=a(*ACCEPT)b)c",[trim]))), <<"xa:d">> = iolist_to_binary(join(re:split("xacd","(?<=a(*ACCEPT)b)c",[{parts, 2}]))), <<"xa:d">> = iolist_to_binary(join(re:split("xacd","(?<=a(*ACCEPT)b)c",[]))), <<"xa:a:d">> = iolist_to_binary(join(re:split("xacd","(?<=(a(*ACCEPT)b))c",[trim]))), <<"xa:a:d">> = iolist_to_binary(join(re:split("xacd","(?<=(a(*ACCEPT)b))c",[{parts, 2}]))), <<"xa:a:d">> = iolist_to_binary(join(re:split("xacd","(?<=(a(*ACCEPT)b))c",[]))), <<"xab:ab:d">> = iolist_to_binary(join(re:split("xabcd","(?<=(a(*COMMIT)b))c",[trim]))), <<"xab:ab:d">> = iolist_to_binary(join(re:split("xabcd","(?<=(a(*COMMIT)b))c",[{parts, 2}]))), <<"xab:ab:d">> = iolist_to_binary(join(re:split("xabcd","(?<=(a(*COMMIT)b))c",[]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=(a(*COMMIT)b))c",[trim]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=(a(*COMMIT)b))c",[{parts, 2}]))), <<"** Failers">> = iolist_to_binary(join(re:split("** Failers","(?<=(a(*COMMIT)b))c",[]))), <<"xacd">> = iolist_to_binary(join(re:split("xacd","(?<=(a(*COMMIT)b))c",[trim]))), <<"xacd">> = iolist_to_binary(join(re:split("xacd","(?<=(a(*COMMIT)b))c",[{parts, 2}]))), <<"xacd">> = iolist_to_binary(join(re:split("xacd","(?<=(a(*COMMIT)b))c",[]))), <<"x:d">> = iolist_to_binary(join(re:split("xcd","(?> = iolist_to_binary(join(re:split("xcd","(?> = iolist_to_binary(join(re:split("xcd","(?> = iolist_to_binary(join(re:split("acd","(?> = iolist_to_binary(join(re:split("acd","(?> = iolist_to_binary(join(re:split("acd","(?> = iolist_to_binary(join(re:split("xabcd","(?<=a(*PRUNE)b)c",[trim]))), <<"xab:d">> = iolist_to_binary(join(re:split("xabcd","(?<=a(*PRUNE)b)c",[{parts, 2}]))), <<"xab:d">> = iolist_to_binary(join(re:split("xabcd","(?<=a(*PRUNE)b)c",[]))), <<"xab:d">> = iolist_to_binary(join(re:split("xabcd","(?<=a(*SKIP)b)c",[trim]))), <<"xab:d">> = iolist_to_binary(join(re:split("xabcd","(?<=a(*SKIP)b)c",[{parts, 2}]))), <<"xab:d">> = iolist_to_binary(join(re:split("xabcd","(?<=a(*SKIP)b)c",[]))), <<"xab:d">> = iolist_to_binary(join(re:split("xabcd","(?<=a(*THEN)b)c",[trim]))), <<"xab:d">> = iolist_to_binary(join(re:split("xabcd","(?<=a(*THEN)b)c",[{parts, 2}]))), <<"xab:d">> = iolist_to_binary(join(re:split("xabcd","(?<=a(*THEN)b)c",[]))), ok. run49() -> <<":a:d">> = iolist_to_binary(join(re:split("abcd","(a)(?2){2}(.)",[trim]))), <<":a:d:">> = iolist_to_binary(join(re:split("abcd","(a)(?2){2}(.)",[{parts, 2}]))), <<":a:d:">> = iolist_to_binary(join(re:split("abcd","(a)(?2){2}(.)",[]))), <<"hello world ">> = iolist_to_binary(join(re:split("hello world test","(another)?(\\1?)test",[trim]))), <<"hello world :::">> = iolist_to_binary(join(re:split("hello world test","(another)?(\\1?)test",[{parts, 2}]))), <<"hello world :::">> = iolist_to_binary(join(re:split("hello world test","(another)?(\\1?)test",[]))), <<"hello world test">> = iolist_to_binary(join(re:split("hello world test","(another)?(\\1+)test",[trim]))), <<"hello world test">> = iolist_to_binary(join(re:split("hello world test","(another)?(\\1+)test",[{parts, 2}]))), <<"hello world test">> = iolist_to_binary(join(re:split("hello world test","(another)?(\\1+)test",[]))), <<"">> = iolist_to_binary(join(re:split("aac","(a(*COMMIT)b){0}a(?1)|aac",[trim]))), <<"::">> = iolist_to_binary(join(re:split("aac","(a(*COMMIT)b){0}a(?1)|aac",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("aac","(a(*COMMIT)b){0}a(?1)|aac",[]))), <<"">> = iolist_to_binary(join(re:split("aac","((?:a?)*)*c",[trim]))), <<"::">> = iolist_to_binary(join(re:split("aac","((?:a?)*)*c",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("aac","((?:a?)*)*c",[]))), <<"">> = iolist_to_binary(join(re:split("aac","((?>a?)*)*c",[trim]))), <<"::">> = iolist_to_binary(join(re:split("aac","((?>a?)*)*c",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("aac","((?>a?)*)*c",[]))), <<"a">> = iolist_to_binary(join(re:split("aba","(?>.*?a)(?<=ba)",[trim]))), <<"a:">> = iolist_to_binary(join(re:split("aba","(?>.*?a)(?<=ba)",[{parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("aba","(?>.*?a)(?<=ba)",[]))), <<"">> = iolist_to_binary(join(re:split("aba","(?:.*?a)(?<=ba)",[trim]))), <<":">> = iolist_to_binary(join(re:split("aba","(?:.*?a)(?<=ba)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aba","(?:.*?a)(?<=ba)",[]))), <<"a">> = iolist_to_binary(join(re:split("aab",".*?a(*PRUNE)b",[trim]))), <<"a:">> = iolist_to_binary(join(re:split("aab",".*?a(*PRUNE)b",[{parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("aab",".*?a(*PRUNE)b",[]))), <<"a">> = iolist_to_binary(join(re:split("aab",".*?a(*PRUNE)b",[dotall, trim]))), <<"a:">> = iolist_to_binary(join(re:split("aab",".*?a(*PRUNE)b",[dotall, {parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("aab",".*?a(*PRUNE)b",[dotall]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^a(*PRUNE)b",[dotall, trim]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^a(*PRUNE)b",[dotall, {parts, 2}]))), <<"aab">> = iolist_to_binary(join(re:split("aab","^a(*PRUNE)b",[dotall]))), <<"a">> = iolist_to_binary(join(re:split("aab",".*?a(*SKIP)b",[trim]))), <<"a:">> = iolist_to_binary(join(re:split("aab",".*?a(*SKIP)b",[{parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("aab",".*?a(*SKIP)b",[]))), <<"a">> = iolist_to_binary(join(re:split("aab","(?>.*?a)b",[dotall, trim]))), <<"a:">> = iolist_to_binary(join(re:split("aab","(?>.*?a)b",[dotall, {parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("aab","(?>.*?a)b",[dotall]))), ok. run50() -> <<"a">> = iolist_to_binary(join(re:split("aab","(?>.*?a)b",[trim]))), <<"a:">> = iolist_to_binary(join(re:split("aab","(?>.*?a)b",[{parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("aab","(?>.*?a)b",[]))), <<"aab">> = iolist_to_binary(join(re:split("aab","(?>^a)b",[dotall, trim]))), <<"aab">> = iolist_to_binary(join(re:split("aab","(?>^a)b",[dotall, {parts, 2}]))), <<"aab">> = iolist_to_binary(join(re:split("aab","(?>^a)b",[dotall]))), <<"alphabetabcd:abcd">> = iolist_to_binary(join(re:split("alphabetabcd","(?>.*?)(?<=(abcd)|(wxyz))",[trim]))), <<"alphabetabcd:abcd::">> = iolist_to_binary(join(re:split("alphabetabcd","(?>.*?)(?<=(abcd)|(wxyz))",[{parts, 2}]))), <<"alphabetabcd:abcd::">> = iolist_to_binary(join(re:split("alphabetabcd","(?>.*?)(?<=(abcd)|(wxyz))",[]))), <<"endingwxyz::wxyz">> = iolist_to_binary(join(re:split("endingwxyz","(?>.*?)(?<=(abcd)|(wxyz))",[trim]))), <<"endingwxyz::wxyz:">> = iolist_to_binary(join(re:split("endingwxyz","(?>.*?)(?<=(abcd)|(wxyz))",[{parts, 2}]))), <<"endingwxyz::wxyz:">> = iolist_to_binary(join(re:split("endingwxyz","(?>.*?)(?<=(abcd)|(wxyz))",[]))), <<":abcd">> = iolist_to_binary(join(re:split("alphabetabcd","(?>.*)(?<=(abcd)|(wxyz))",[trim]))), <<":abcd::">> = iolist_to_binary(join(re:split("alphabetabcd","(?>.*)(?<=(abcd)|(wxyz))",[{parts, 2}]))), <<":abcd::">> = iolist_to_binary(join(re:split("alphabetabcd","(?>.*)(?<=(abcd)|(wxyz))",[]))), <<"::wxyz">> = iolist_to_binary(join(re:split("endingwxyz","(?>.*)(?<=(abcd)|(wxyz))",[trim]))), <<"::wxyz:">> = iolist_to_binary(join(re:split("endingwxyz","(?>.*)(?<=(abcd)|(wxyz))",[{parts, 2}]))), <<"::wxyz:">> = iolist_to_binary(join(re:split("endingwxyz","(?>.*)(?<=(abcd)|(wxyz))",[]))), <<"abcdfooxyz">> = iolist_to_binary(join(re:split("abcdfooxyz","(?>.*)foo",[trim]))), <<"abcdfooxyz">> = iolist_to_binary(join(re:split("abcdfooxyz","(?>.*)foo",[{parts, 2}]))), <<"abcdfooxyz">> = iolist_to_binary(join(re:split("abcdfooxyz","(?>.*)foo",[]))), <<"abcd:xyz">> = iolist_to_binary(join(re:split("abcdfooxyz","(?>.*?)foo",[trim]))), <<"abcd:xyz">> = iolist_to_binary(join(re:split("abcdfooxyz","(?>.*?)foo",[{parts, 2}]))), <<"abcd:xyz">> = iolist_to_binary(join(re:split("abcdfooxyz","(?>.*?)foo",[]))), <<"">> = iolist_to_binary(join(re:split("ac","(?:(a(*PRUNE)b)){0}(?:(?1)|ac)",[trim]))), <<"::">> = iolist_to_binary(join(re:split("ac","(?:(a(*PRUNE)b)){0}(?:(?1)|ac)",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("ac","(?:(a(*PRUNE)b)){0}(?:(?1)|ac)",[]))), <<"">> = iolist_to_binary(join(re:split("ac","(?:(a(*SKIP)b)){0}(?:(?1)|ac)",[trim]))), <<"::">> = iolist_to_binary(join(re:split("ac","(?:(a(*SKIP)b)){0}(?:(?1)|ac)",[{parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("ac","(?:(a(*SKIP)b)){0}(?:(?1)|ac)",[]))), <<"aa">> = iolist_to_binary(join(re:split("aa","(?<=(*SKIP)ac)a",[trim]))), <<"aa">> = iolist_to_binary(join(re:split("aa","(?<=(*SKIP)ac)a",[{parts, 2}]))), <<"aa">> = iolist_to_binary(join(re:split("aa","(?<=(*SKIP)ac)a",[]))), <<"aa">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*PRUNE)b|a+c",[trim]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*PRUNE)b|a+c",[{parts, 2}]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*PRUNE)b|a+c",[]))), <<"aa">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP)(*PRUNE)b|a+c",[trim]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP)(*PRUNE)b|a+c",[{parts, 2}]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP)(*PRUNE)b|a+c",[]))), <<"aa">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP:N)(*PRUNE)b|a+c",[trim]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP:N)(*PRUNE)b|a+c",[{parts, 2}]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP:N)(*PRUNE)b|a+c",[]))), <<"aa">> = iolist_to_binary(join(re:split("aaaaaac","aaaa(*:N)a(*SKIP:N)(*PRUNE)b|a+c",[trim]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaa(*:N)a(*SKIP:N)(*PRUNE)b|a+c",[{parts, 2}]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaa(*:N)a(*SKIP:N)(*PRUNE)b|a+c",[]))), <<"aa">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*THEN)(*PRUNE)b|a+c",[trim]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*THEN)(*PRUNE)b|a+c",[{parts, 2}]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*THEN)(*PRUNE)b|a+c",[]))), ok. run51() -> <<"aaaaa">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP)b|a+c",[trim]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP)b|a+c",[{parts, 2}]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP)b|a+c",[]))), <<"aaaaa">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*PRUNE)(*SKIP)b|a+c",[trim]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*PRUNE)(*SKIP)b|a+c",[{parts, 2}]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*PRUNE)(*SKIP)b|a+c",[]))), <<"aaaaa">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*THEN)(*SKIP)b|a+c",[trim]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*THEN)(*SKIP)b|a+c",[{parts, 2}]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*THEN)(*SKIP)b|a+c",[]))), <<"aaaaa">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*COMMIT)(*SKIP)b|a+c",[trim]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*COMMIT)(*SKIP)b|a+c",[{parts, 2}]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*COMMIT)(*SKIP)b|a+c",[]))), <<"aaaaaac">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*COMMIT)b|a+c",[trim]))), <<"aaaaaac">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*COMMIT)b|a+c",[{parts, 2}]))), <<"aaaaaac">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*COMMIT)b|a+c",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*THEN)b|a+c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*THEN)b|a+c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*THEN)b|a+c",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP)(*THEN)b|a+c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP)(*THEN)b|a+c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*SKIP)(*THEN)b|a+c",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*PRUNE)(*THEN)b|a+c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*PRUNE)(*THEN)b|a+c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*PRUNE)(*THEN)b|a+c",[]))), <<"">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*COMMIT)(*THEN)b|a+c",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*COMMIT)(*THEN)b|a+c",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaaaac","aaaaa(*COMMIT)(*THEN)b|a+c",[]))), ok. run52() -> <<"aaaaa">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:m)(*PRUNE:m)(*SKIP:m)m|a+",[trim]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:m)(*PRUNE:m)(*SKIP:m)m|a+",[{parts, 2}]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:m)(*PRUNE:m)(*SKIP:m)m|a+",[]))), <<"aaaaa">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:m)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+",[trim]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:m)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+",[{parts, 2}]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:m)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+",[]))), <<"aa">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:n)(*PRUNE:m)(*SKIP:m)m|a+",[trim]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:n)(*PRUNE:m)(*SKIP:m)m|a+",[{parts, 2}]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:n)(*PRUNE:m)(*SKIP:m)m|a+",[]))), <<"aaaaa">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:n)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+",[trim]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:n)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+",[{parts, 2}]))), <<"aaaaa:">> = iolist_to_binary(join(re:split("aaaaaa","aaaaa(*:n)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+",[]))), <<"aa">> = iolist_to_binary(join(re:split("aaaac","a(*MARK:A)aa(*PRUNE:A)a(*SKIP:A)b|a+c",[trim]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaac","a(*MARK:A)aa(*PRUNE:A)a(*SKIP:A)b|a+c",[{parts, 2}]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaac","a(*MARK:A)aa(*PRUNE:A)a(*SKIP:A)b|a+c",[]))), <<"aaa">> = iolist_to_binary(join(re:split("aaaac","a(*MARK:A)aa(*MARK:A)a(*SKIP:A)b|a+c",[trim]))), <<"aaa:">> = iolist_to_binary(join(re:split("aaaac","a(*MARK:A)aa(*MARK:A)a(*SKIP:A)b|a+c",[{parts, 2}]))), <<"aaa:">> = iolist_to_binary(join(re:split("aaaac","a(*MARK:A)aa(*MARK:A)a(*SKIP:A)b|a+c",[]))), <<"aa">> = iolist_to_binary(join(re:split("aaaac","aaa(*PRUNE:A)a(*SKIP:A)b|a+c",[trim]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaac","aaa(*PRUNE:A)a(*SKIP:A)b|a+c",[{parts, 2}]))), <<"aa:">> = iolist_to_binary(join(re:split("aaaac","aaa(*PRUNE:A)a(*SKIP:A)b|a+c",[]))), <<"aaa">> = iolist_to_binary(join(re:split("aaaac","aaa(*MARK:A)a(*SKIP:A)b|a+c",[trim]))), <<"aaa:">> = iolist_to_binary(join(re:split("aaaac","aaa(*MARK:A)a(*SKIP:A)b|a+c",[{parts, 2}]))), <<"aaa:">> = iolist_to_binary(join(re:split("aaaac","aaa(*MARK:A)a(*SKIP:A)b|a+c",[]))), <<":a">> = iolist_to_binary(join(re:split("ba",".?(a|b(*THEN)c)",[trim]))), <<":a:">> = iolist_to_binary(join(re:split("ba",".?(a|b(*THEN)c)",[{parts, 2}]))), <<":a:">> = iolist_to_binary(join(re:split("ba",".?(a|b(*THEN)c)",[]))), <<":ab">> = iolist_to_binary(join(re:split("abc","(a(*COMMIT)b)c|abd",[trim]))), <<":ab:">> = iolist_to_binary(join(re:split("abc","(a(*COMMIT)b)c|abd",[{parts, 2}]))), <<":ab:">> = iolist_to_binary(join(re:split("abc","(a(*COMMIT)b)c|abd",[]))), <<"abd">> = iolist_to_binary(join(re:split("abd","(a(*COMMIT)b)c|abd",[trim]))), <<"abd">> = iolist_to_binary(join(re:split("abd","(a(*COMMIT)b)c|abd",[{parts, 2}]))), <<"abd">> = iolist_to_binary(join(re:split("abd","(a(*COMMIT)b)c|abd",[]))), <<"">> = iolist_to_binary(join(re:split("abc","(?=a(*COMMIT)b)abc|abd",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","(?=a(*COMMIT)b)abc|abd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","(?=a(*COMMIT)b)abc|abd",[]))), <<"">> = iolist_to_binary(join(re:split("abd","(?=a(*COMMIT)b)abc|abd",[trim]))), <<":">> = iolist_to_binary(join(re:split("abd","(?=a(*COMMIT)b)abc|abd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abd","(?=a(*COMMIT)b)abc|abd",[]))), <<"">> = iolist_to_binary(join(re:split("abc","(?>a(*COMMIT)b)c|abd",[trim]))), <<":">> = iolist_to_binary(join(re:split("abc","(?>a(*COMMIT)b)c|abd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abc","(?>a(*COMMIT)b)c|abd",[]))), <<"">> = iolist_to_binary(join(re:split("abd","(?>a(*COMMIT)b)c|abd",[trim]))), <<":">> = iolist_to_binary(join(re:split("abd","(?>a(*COMMIT)b)c|abd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abd","(?>a(*COMMIT)b)c|abd",[]))), <<"abd">> = iolist_to_binary(join(re:split("abd","a(?=b(*COMMIT)c)[^d]|abd",[trim]))), <<"abd">> = iolist_to_binary(join(re:split("abd","a(?=b(*COMMIT)c)[^d]|abd",[{parts, 2}]))), <<"abd">> = iolist_to_binary(join(re:split("abd","a(?=b(*COMMIT)c)[^d]|abd",[]))), <<":c">> = iolist_to_binary(join(re:split("abc","a(?=b(*COMMIT)c)[^d]|abd",[trim]))), <<":c">> = iolist_to_binary(join(re:split("abc","a(?=b(*COMMIT)c)[^d]|abd",[{parts, 2}]))), <<":c">> = iolist_to_binary(join(re:split("abc","a(?=b(*COMMIT)c)[^d]|abd",[]))), <<"">> = iolist_to_binary(join(re:split("abd","a(?=bc).|abd",[trim]))), <<":">> = iolist_to_binary(join(re:split("abd","a(?=bc).|abd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abd","a(?=bc).|abd",[]))), <<":c">> = iolist_to_binary(join(re:split("abc","a(?=bc).|abd",[trim]))), <<":c">> = iolist_to_binary(join(re:split("abc","a(?=bc).|abd",[{parts, 2}]))), <<":c">> = iolist_to_binary(join(re:split("abc","a(?=bc).|abd",[]))), <<"abceabd">> = iolist_to_binary(join(re:split("abceabd","a(?>b(*COMMIT)c)d|abd",[trim]))), <<"abceabd">> = iolist_to_binary(join(re:split("abceabd","a(?>b(*COMMIT)c)d|abd",[{parts, 2}]))), <<"abceabd">> = iolist_to_binary(join(re:split("abceabd","a(?>b(*COMMIT)c)d|abd",[]))), <<"abce">> = iolist_to_binary(join(re:split("abceabd","a(?>bc)d|abd",[trim]))), <<"abce:">> = iolist_to_binary(join(re:split("abceabd","a(?>bc)d|abd",[{parts, 2}]))), <<"abce:">> = iolist_to_binary(join(re:split("abceabd","a(?>bc)d|abd",[]))), <<"">> = iolist_to_binary(join(re:split("abd","(?>a(*COMMIT)b)c|abd",[trim]))), <<":">> = iolist_to_binary(join(re:split("abd","(?>a(*COMMIT)b)c|abd",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("abd","(?>a(*COMMIT)b)c|abd",[]))), <<"abd">> = iolist_to_binary(join(re:split("abd","(?>a(*COMMIT)c)d|abd",[trim]))), <<"abd">> = iolist_to_binary(join(re:split("abd","(?>a(*COMMIT)c)d|abd",[{parts, 2}]))), <<"abd">> = iolist_to_binary(join(re:split("abd","(?>a(*COMMIT)c)d|abd",[]))), <<"::c">> = iolist_to_binary(join(re:split("ac","((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))",[trim]))), <<"::c:">> = iolist_to_binary(join(re:split("ac","((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))",[{parts, 2}]))), <<"::c:">> = iolist_to_binary(join(re:split("ac","((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))",[]))), ok. run53() -> <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a)?(?(1)a|b)+$",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a)?(?(1)a|b)+$",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^(a)?(?(1)a|b)+$",[]))), <<"a">> = iolist_to_binary(join(re:split("a","^(a)?(?(1)a|b)+$",[trim]))), <<"a">> = iolist_to_binary(join(re:split("a","^(a)?(?(1)a|b)+$",[{parts, 2}]))), <<"a">> = iolist_to_binary(join(re:split("a","^(a)?(?(1)a|b)+$",[]))), <<"a">> = iolist_to_binary(join(re:split("ab","(?=a\\Kb)ab",[trim]))), <<"a:">> = iolist_to_binary(join(re:split("ab","(?=a\\Kb)ab",[{parts, 2}]))), <<"a:">> = iolist_to_binary(join(re:split("ab","(?=a\\Kb)ab",[]))), <<"">> = iolist_to_binary(join(re:split("ac","(?!a\\Kb)ac",[trim]))), <<":">> = iolist_to_binary(join(re:split("ac","(?!a\\Kb)ac",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ac","(?!a\\Kb)ac",[]))), <<"ab">> = iolist_to_binary(join(re:split("abcd","^abc(?<=b\\Kc)d",[trim]))), <<"ab:">> = iolist_to_binary(join(re:split("abcd","^abc(?<=b\\Kc)d",[{parts, 2}]))), <<"ab:">> = iolist_to_binary(join(re:split("abcd","^abc(?<=b\\Kc)d",[]))), <<"">> = iolist_to_binary(join(re:split("abcd","^abc(?> = iolist_to_binary(join(re:split("abcd","^abc(?> = iolist_to_binary(join(re:split("abcd","^abc(?> = iolist_to_binary(join(re:split("abcd","^((abc|abcx)(*THEN)y|abcd)",[trim]))), <<":abcd::">> = iolist_to_binary(join(re:split("abcd","^((abc|abcx)(*THEN)y|abcd)",[{parts, 2}]))), <<":abcd::">> = iolist_to_binary(join(re:split("abcd","^((abc|abcx)(*THEN)y|abcd)",[]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^((abc|abcx)(*THEN)y|abcd)",[trim]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^((abc|abcx)(*THEN)y|abcd)",[{parts, 2}]))), <<"*** Failers">> = iolist_to_binary(join(re:split("*** Failers","^((abc|abcx)(*THEN)y|abcd)",[]))), <<"abcxy">> = iolist_to_binary(join(re:split("abcxy","^((abc|abcx)(*THEN)y|abcd)",[trim]))), <<"abcxy">> = iolist_to_binary(join(re:split("abcxy","^((abc|abcx)(*THEN)y|abcd)",[{parts, 2}]))), <<"abcxy">> = iolist_to_binary(join(re:split("abcxy","^((abc|abcx)(*THEN)y|abcd)",[]))), <<"yes">> = iolist_to_binary(join(re:split("yes","^((yes|no)(*THEN)(*F))?",[trim]))), <<"yes">> = iolist_to_binary(join(re:split("yes","^((yes|no)(*THEN)(*F))?",[{parts, 2}]))), <<"yes">> = iolist_to_binary(join(re:split("yes","^((yes|no)(*THEN)(*F))?",[]))), <<"ac">> = iolist_to_binary(join(re:split("ac","(?=a(*COMMIT)b|ac)ac|ac",[trim]))), <<"ac">> = iolist_to_binary(join(re:split("ac","(?=a(*COMMIT)b|ac)ac|ac",[{parts, 2}]))), <<"ac">> = iolist_to_binary(join(re:split("ac","(?=a(*COMMIT)b|ac)ac|ac",[]))), <<"ac">> = iolist_to_binary(join(re:split("ac","(?=a(*COMMIT)b|(ac)) ac | (a)c",[extended, trim]))), <<"ac">> = iolist_to_binary(join(re:split("ac","(?=a(*COMMIT)b|(ac)) ac | (a)c",[extended, {parts, 2}]))), <<"ac">> = iolist_to_binary(join(re:split("ac","(?=a(*COMMIT)b|(ac)) ac | (a)c",[extended]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*THEN)a)bn|bnn)",[trim]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*THEN)a)bn|bnn)",[{parts, 2}]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*THEN)a)bn|bnn)",[]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?!b(*SKIP)a)bn|bnn",[trim]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?!b(*SKIP)a)bn|bnn",[{parts, 2}]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?!b(*SKIP)a)bn|bnn",[]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*SKIP)a)bn|bnn)",[trim]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*SKIP)a)bn|bnn)",[{parts, 2}]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*SKIP)a)bn|bnn)",[]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?!b(*PRUNE)a)bn|bnn",[trim]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?!b(*PRUNE)a)bn|bnn",[{parts, 2}]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?!b(*PRUNE)a)bn|bnn",[]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*PRUNE)a)bn|bnn)",[trim]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*PRUNE)a)bn|bnn)",[{parts, 2}]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*PRUNE)a)bn|bnn)",[]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?!b(*COMMIT)a)bn|bnn",[trim]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?!b(*COMMIT)a)bn|bnn",[{parts, 2}]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?!b(*COMMIT)a)bn|bnn",[]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*COMMIT)a)bn|bnn)",[trim]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*COMMIT)a)bn|bnn)",[{parts, 2}]))), <<":n">> = iolist_to_binary(join(re:split("bnn","(?(?!b(*COMMIT)a)bn|bnn)",[]))), <<"bnn">> = iolist_to_binary(join(re:split("bnn","(?=b(*SKIP)a)bn|bnn",[trim]))), <<"bnn">> = iolist_to_binary(join(re:split("bnn","(?=b(*SKIP)a)bn|bnn",[{parts, 2}]))), <<"bnn">> = iolist_to_binary(join(re:split("bnn","(?=b(*SKIP)a)bn|bnn",[]))), <<"">> = iolist_to_binary(join(re:split("bnn","(?=b(*THEN)a)bn|bnn",[trim]))), <<":">> = iolist_to_binary(join(re:split("bnn","(?=b(*THEN)a)bn|bnn",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("bnn","(?=b(*THEN)a)bn|bnn",[]))), ok. run54() -> <<":d">> = iolist_to_binary(join(re:split("acd","(?!a(*SKIP)b)..",[trim]))), <<":d">> = iolist_to_binary(join(re:split("acd","(?!a(*SKIP)b)..",[{parts, 2}]))), <<":d">> = iolist_to_binary(join(re:split("acd","(?!a(*SKIP)b)..",[]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?(?!a(*SKIP)b))",[trim]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?(?!a(*SKIP)b))",[{parts, 2}]))), <<"ac">> = iolist_to_binary(join(re:split("ac","^(?(?!a(*SKIP)b))",[]))), <<":d">> = iolist_to_binary(join(re:split("acd","^(?!a(*PRUNE)b)..",[trim]))), <<":d">> = iolist_to_binary(join(re:split("acd","^(?!a(*PRUNE)b)..",[{parts, 2}]))), <<":d">> = iolist_to_binary(join(re:split("acd","^(?!a(*PRUNE)b)..",[]))), <<":d">> = iolist_to_binary(join(re:split("acd","(?!a(*PRUNE)b)..",[trim]))), <<":d">> = iolist_to_binary(join(re:split("acd","(?!a(*PRUNE)b)..",[{parts, 2}]))), <<":d">> = iolist_to_binary(join(re:split("acd","(?!a(*PRUNE)b)..",[]))), <<"">> = iolist_to_binary(join(re:split("ba","\\A.*?(?:a|bc)",[trim]))), <<":">> = iolist_to_binary(join(re:split("ba","\\A.*?(?:a|bc)",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ba","\\A.*?(?:a|bc)",[]))), <<":CD">> = iolist_to_binary(join(re:split("CD","^(A(*THEN)B|C(*THEN)D)",[trim]))), <<":CD:">> = iolist_to_binary(join(re:split("CD","^(A(*THEN)B|C(*THEN)D)",[{parts, 2}]))), <<":CD:">> = iolist_to_binary(join(re:split("CD","^(A(*THEN)B|C(*THEN)D)",[]))), <<"">> = iolist_to_binary(join(re:split("1234","^\\d*\\w{4}",[trim]))), <<":">> = iolist_to_binary(join(re:split("1234","^\\d*\\w{4}",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("1234","^\\d*\\w{4}",[]))), <<"123">> = iolist_to_binary(join(re:split("123","^\\d*\\w{4}",[trim]))), <<"123">> = iolist_to_binary(join(re:split("123","^\\d*\\w{4}",[{parts, 2}]))), <<"123">> = iolist_to_binary(join(re:split("123","^\\d*\\w{4}",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","^[^b]*\\w{4}",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^[^b]*\\w{4}",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^[^b]*\\w{4}",[]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^[^b]*\\w{4}",[trim]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^[^b]*\\w{4}",[{parts, 2}]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^[^b]*\\w{4}",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","^[^b]*\\w{4}",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^[^b]*\\w{4}",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^[^b]*\\w{4}",[caseless]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^[^b]*\\w{4}",[caseless, trim]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^[^b]*\\w{4}",[caseless, {parts, 2}]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^[^b]*\\w{4}",[caseless]))), <<"">> = iolist_to_binary(join(re:split("aaaa","^a*\\w{4}",[trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^a*\\w{4}",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^a*\\w{4}",[]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^a*\\w{4}",[trim]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^a*\\w{4}",[{parts, 2}]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^a*\\w{4}",[]))), <<"">> = iolist_to_binary(join(re:split("aaaa","^a*\\w{4}",[caseless, trim]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^a*\\w{4}",[caseless, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaa","^a*\\w{4}",[caseless]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^a*\\w{4}",[caseless, trim]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^a*\\w{4}",[caseless, {parts, 2}]))), <<"aaa">> = iolist_to_binary(join(re:split("aaa","^a*\\w{4}",[caseless]))), <<":1:non-sp1:non-sp2">> = iolist_to_binary(join(re:split("1 IN SOA non-sp1 non-sp2(","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[trim]))), <<":1:non-sp1:non-sp2:">> = iolist_to_binary(join(re:split("1 IN SOA non-sp1 non-sp2(","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[{parts, 2}]))), <<":1:non-sp1:non-sp2:">> = iolist_to_binary(join(re:split("1 IN SOA non-sp1 non-sp2(","^(\\d+)\\s+IN\\s+SOA\\s+(\\S+)\\s+(\\S+)\\s*\\(\\s*$",[]))), <<"AZ">> = iolist_to_binary(join(re:split("AZ","^A\\xZ",[trim]))), <<"AZ">> = iolist_to_binary(join(re:split("AZ","^A\\xZ",[{parts, 2}]))), <<"AZ">> = iolist_to_binary(join(re:split("AZ","^A\\xZ",[]))), <<"">> = iolist_to_binary(join(re:split("ASB","^A\\o{123}B",[trim]))), <<":">> = iolist_to_binary(join(re:split("ASB","^A\\o{123}B",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("ASB","^A\\o{123}B",[]))), <<"">> = iolist_to_binary(join(re:split("aaaab"," ^ a + + b $ ",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("aaaab"," ^ a + + b $ ",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaab"," ^ a + + b $ ",[extended]))), <<"">> = iolist_to_binary(join(re:split("aaaab"," ^ a + #comment + b $ ",[extended,trim]))), <<":">> = iolist_to_binary(join(re:split("aaaab"," ^ a + #comment + b $ ",[extended,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("aaaab"," ^ a + #comment + b $ ",[extended]))), <<"">> = iolist_to_binary(join(re:split("aaaab"," ^ a + #comment #comment + b $ ",[extended,trim]))), <<":">> = iolist_to_binary(join(re:split("aaaab"," ^ a + #comment #comment + b $ ",[extended,{parts,2}]))), <<":">> = iolist_to_binary(join(re:split("aaaab"," ^ a + #comment #comment + b $ ",[extended]))), ok. run55() -> <<"">> = iolist_to_binary(join(re:split("aaaab"," ^ (?> a + ) b $ ",[extended, trim]))), <<":">> = iolist_to_binary(join(re:split("aaaab"," ^ (?> a + ) b $ ",[extended, {parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aaaab"," ^ (?> a + ) b $ ",[extended]))), <<":aaaa">> = iolist_to_binary(join(re:split("aaaab"," ^ ( a + ) + + \\w $ ",[extended, trim]))), <<":aaaa:">> = iolist_to_binary(join(re:split("aaaab"," ^ ( a + ) + + \\w $ ",[extended, {parts, 2}]))), <<":aaaa:">> = iolist_to_binary(join(re:split("aaaab"," ^ ( a + ) + + \\w $ ",[extended]))), <<"acb">> = iolist_to_binary(join(re:split("acb","(?:x|(?:(xx|yy)+|x|x|x|x|x)|a|a|a)bc",[trim]))), <<"acb">> = iolist_to_binary(join(re:split("acb","(?:x|(?:(xx|yy)+|x|x|x|x|x)|a|a|a)bc",[{parts, 2}]))), <<"acb">> = iolist_to_binary(join(re:split("acb","(?:x|(?:(xx|yy)+|x|x|x|x|x)|a|a|a)bc",[]))), <<":\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A(?:[^\\\"]++|\\\"(?:[^\\\"]*+|\\\"\\\")*+\\\")++",[trim]))), <<":\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A(?:[^\\\"]++|\\\"(?:[^\\\"]*+|\\\"\\\")*+\\\")++",[{parts, 2}]))), <<":\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A(?:[^\\\"]++|\\\"(?:[^\\\"]*+|\\\"\\\")*+\\\")++",[]))), <<":\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A(?:[^\\\"]++|\\\"(?:[^\\\"]++|\\\"\\\")*+\\\")++",[trim]))), <<":\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A(?:[^\\\"]++|\\\"(?:[^\\\"]++|\\\"\\\")*+\\\")++",[{parts, 2}]))), <<":\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A(?:[^\\\"]++|\\\"(?:[^\\\"]++|\\\"\\\")*+\\\")++",[]))), <<":\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A(?:[^\\\"]++|\\\"(?:[^\\\"]++|\\\"\\\")++\\\")++",[trim]))), <<":\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A(?:[^\\\"]++|\\\"(?:[^\\\"]++|\\\"\\\")++\\\")++",[{parts, 2}]))), <<":\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A(?:[^\\\"]++|\\\"(?:[^\\\"]++|\\\"\\\")++\\\")++",[]))), <<": AFTER ::\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A([^\\\"1]++|[\\\"2]([^\\\"3]*+|[\\\"4][\\\"5])*+[\\\"6])++",[trim]))), <<": AFTER ::\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A([^\\\"1]++|[\\\"2]([^\\\"3]*+|[\\\"4][\\\"5])*+[\\\"6])++",[{parts, 2}]))), <<": AFTER ::\"NOT MATCHED">> = iolist_to_binary(join(re:split("NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED","\\A([^\\\"1]++|[\\\"2]([^\\\"3]*+|[\\\"4][\\\"5])*+[\\\"6])++",[]))), <<":t test">> = iolist_to_binary(join(re:split("test test","^\\w+(?>\\s*)(?<=\\w)",[trim]))), <<":t test">> = iolist_to_binary(join(re:split("test test","^\\w+(?>\\s*)(?<=\\w)",[{parts, 2}]))), <<":t test">> = iolist_to_binary(join(re:split("test test","^\\w+(?>\\s*)(?<=\\w)",[]))), <<":a">> = iolist_to_binary(join(re:split("acl","(?Pa)?(?Pb)?(?()c|d)*l",[trim]))), <<":a::">> = iolist_to_binary(join(re:split("acl","(?Pa)?(?Pb)?(?()c|d)*l",[{parts, 2}]))), <<":a::">> = iolist_to_binary(join(re:split("acl","(?Pa)?(?Pb)?(?()c|d)*l",[]))), <<"::b">> = iolist_to_binary(join(re:split("bdl","(?Pa)?(?Pb)?(?()c|d)*l",[trim]))), <<"::b:">> = iolist_to_binary(join(re:split("bdl","(?Pa)?(?Pb)?(?()c|d)*l",[{parts, 2}]))), <<"::b:">> = iolist_to_binary(join(re:split("bdl","(?Pa)?(?Pb)?(?()c|d)*l",[]))), <<"a">> = iolist_to_binary(join(re:split("adl","(?Pa)?(?Pb)?(?()c|d)*l",[trim]))), <<"a:::">> = iolist_to_binary(join(re:split("adl","(?Pa)?(?Pb)?(?()c|d)*l",[{parts, 2}]))), <<"a:::">> = iolist_to_binary(join(re:split("adl","(?Pa)?(?Pb)?(?()c|d)*l",[]))), <<"bc">> = iolist_to_binary(join(re:split("bcl","(?Pa)?(?Pb)?(?()c|d)*l",[trim]))), <<"bc:::">> = iolist_to_binary(join(re:split("bcl","(?Pa)?(?Pb)?(?()c|d)*l",[{parts, 2}]))), <<"bc:::">> = iolist_to_binary(join(re:split("bcl","(?Pa)?(?Pb)?(?()c|d)*l",[]))), <<"">> = iolist_to_binary(join(re:split(" abc","\\sabc",[trim]))), <<":">> = iolist_to_binary(join(re:split(" abc","\\sabc",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split(" abc","\\sabc",[]))), <<"">> = iolist_to_binary(join(re:split("aa]]","[\\Qa]\\E]+",[trim]))), <<":">> = iolist_to_binary(join(re:split("aa]]","[\\Qa]\\E]+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aa]]","[\\Qa]\\E]+",[]))), <<"">> = iolist_to_binary(join(re:split("aa]]","[\\Q]a\\E]+",[trim]))), <<":">> = iolist_to_binary(join(re:split("aa]]","[\\Q]a\\E]+",[{parts, 2}]))), <<":">> = iolist_to_binary(join(re:split("aa]]","[\\Q]a\\E]+",[]))), <<"1::::::2::::::3::::::4:abcd:abcd">> = iolist_to_binary(join(re:split("1234abcd","(?:((abcd))|(((?:(?:(?:(?:abc|(?:abcdef))))b)abcdefghi)abc)|((*ACCEPT)))",[trim]))), <<"1::::::234abcd">> = iolist_to_binary(join(re:split("1234abcd","(?:((abcd))|(((?:(?:(?:(?:abc|(?:abcdef))))b)abcdefghi)abc)|((*ACCEPT)))",[{parts, 2}]))), <<"1::::::2::::::3::::::4:abcd:abcd::::">> = iolist_to_binary(join(re:split("1234abcd","(?:((abcd))|(((?:(?:(?:(?:abc|(?:abcdef))))b)abcdefghi)abc)|((*ACCEPT)))",[]))), ok. run56() -> <<"b:a:c">> = iolist_to_binary(join(re:split("baaaaaaaaac","(?1)(?#?'){8}(a)",[trim]))), <<"b:a:c">> = iolist_to_binary(join(re:split("baaaaaaaaac","(?1)(?#?'){8}(a)",[{parts, 2}]))), <<"b:a:c">> = iolist_to_binary(join(re:split("baaaaaaaaac","(?1)(?#?'){8}(a)",[]))), <<"a::b::c::d">> = iolist_to_binary(join(re:split("abcd","(?|(\\k'Pm')|(?'Pm'))",[trim]))), <<"a::bcd">> = iolist_to_binary(join(re:split("abcd","(?|(\\k'Pm')|(?'Pm'))",[{parts, 2}]))), <<"a::b::c::d::">> = iolist_to_binary(join(re:split("abcd","(?|(\\k'Pm')|(?'Pm'))",[]))), <<" :Fred:099">> = iolist_to_binary(join(re:split(" Fred:099","(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[,;:])(?=.{8,16})(?!.*[\\s])",[trim]))), <<" :Fred:099">> = iolist_to_binary(join(re:split(" Fred:099","(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[,;:])(?=.{8,16})(?!.*[\\s])",[{parts, 2}]))), <<" :Fred:099">> = iolist_to_binary(join(re:split(" Fred:099","(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[,;:])(?=.{8,16})(?!.*[\\s])",[]))), <<" ">> = iolist_to_binary(join(re:split(" X","(?=.*X)X$",[trim]))), <<" :">> = iolist_to_binary(join(re:split(" X","(?=.*X)X$",[{parts, 2}]))), <<" :">> = iolist_to_binary(join(re:split(" X","(?=.*X)X$",[]))), <<">:::<">> = iolist_to_binary(join(re:split(">XXX<","X+(?#comment)?",[trim]))), <<">:XX<">> = iolist_to_binary(join(re:split(">XXX<","X+(?#comment)?",[{parts, 2}]))), <<">:::<">> = iolist_to_binary(join(re:split(">XXX<","X+(?#comment)?",[]))), <<":pokus">> = iolist_to_binary(join(re:split("pokus."," (? \\w+ )* \\. ",[extended, caseless, trim]))), <<":pokus:">> = iolist_to_binary(join(re:split("pokus."," (? \\w+ )* \\. ",[extended, caseless, {parts, 2}]))), <<":pokus:">> = iolist_to_binary(join(re:split("pokus."," (? \\w+ )* \\. ",[extended, caseless]))), <<"">> = iolist_to_binary(join(re:split("pokus.","(?(DEFINE) (? \\w+ ) ) (?&word)* \\.",[extended, caseless, trim]))), <<"::">> = iolist_to_binary(join(re:split("pokus.","(?(DEFINE) (? \\w+ ) ) (?&word)* \\.",[extended, caseless, {parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("pokus.","(?(DEFINE) (? \\w+ ) ) (?&word)* \\.",[extended, caseless]))), <<"::pokus">> = iolist_to_binary(join(re:split("pokus.","(?(DEFINE) (? \\w+ ) ) ( (?&word)* ) \\.",[extended, caseless, trim]))), <<"::pokus:">> = iolist_to_binary(join(re:split("pokus.","(?(DEFINE) (? \\w+ ) ) ( (?&word)* ) \\.",[extended, caseless, {parts, 2}]))), <<"::pokus:">> = iolist_to_binary(join(re:split("pokus.","(?(DEFINE) (? \\w+ ) ) ( (?&word)* ) \\.",[extended, caseless]))), <<"">> = iolist_to_binary(join(re:split("pokus.","(?&word)* (?(DEFINE) (? \\w+ ) ) \\.",[extended, caseless, trim]))), <<"::">> = iolist_to_binary(join(re:split("pokus.","(?&word)* (?(DEFINE) (? \\w+ ) ) \\.",[extended, caseless, {parts, 2}]))), <<"::">> = iolist_to_binary(join(re:split("pokus.","(?&word)* (?(DEFINE) (? \\w+ ) ) \\.",[extended, caseless]))), <<":hokus">> = iolist_to_binary(join(re:split("pokus.hokus","(?&word)* \\. (? \\w+ )",[extended, caseless, trim]))), <<":hokus:">> = iolist_to_binary(join(re:split("pokus.hokus","(?&word)* \\. (? \\w+ )",[extended, caseless, {parts, 2}]))), <<":hokus:">> = iolist_to_binary(join(re:split("pokus.hokus","(?&word)* \\. (? \\w+ )",[extended, caseless]))), ok.