<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">I have made an attempt to make my RE stuff readable and supportable. I think I write more description that I do RE "code". As for, <i>it won't be comprehendable,</i> Machine language</div><div class="gmail_default" style="font-family:monospace,monospace">was unreadable and then along came assembly language. Assembly language was unreadable, then came higher level languages. Even higher level languages are unsupportable if not well documented and mostly simple to understand ("you are not expected to understand this" notwithstanding). The jump from machine language to python today</div><div class="gmail_default" style="font-family:monospace,monospace">was unimagined in early times.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">    [</div><div class="gmail_default" style="font-family:monospace,monospace">     As an old timer, I see inflection points</div><div class="gmail_default" style="font-family:monospace,monospace">     between:</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">       machine language and assembly language</div><div class="gmail_default" style="font-family:monospace,monospace">       assembly language and high level languages</div><div class="gmail_default" style="font-family:monospace,monospace">       and</div><div class="gmail_default" style="font-family:monospace,monospace">       high level languages and python.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">      But that's just me.</div><div class="gmail_default" style="font-family:monospace,monospace">     ]</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">I think it is possible to make a 50K RE that is understandable. However, it requires</div><div class="gmail_default" style="font-family:monospace,monospace">a lot of 'splainin' throughout the code. I'm naive though; I will eventually discover</div><div class="gmail_default" style="font-family:monospace,monospace">a lack of truth in that belief, if such exists.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">I repeat. I put stuff down for months at a time. My metric is <i><b>coming back to it</b></i></div><div class="gmail_default" style="font-family:monospace,monospace"><i><b>and understanding where I left off</b></i>. So far, I can do that for this RE program that</div><div class="gmail_default" style="font-family:monospace,monospace">works for small files, large files,</div><div class="gmail_default" style="font-family:monospace,monospace">binary files and text files for exactly one pattern:</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">    YYYY[-MM-DD]</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">I constructed this RE with code like this:</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace"># ymdt is YYYY-MM-DD RE in text.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace"># looking only for 1900s and 2000s years and no later than today.</div><div class="gmail_default" style=""><font face="monospace, monospace">_YYYY = </font><font face="monospace">"(19\d\d|20[01]\d|202" + "[0-" + lastYearRE) + "]" + "){1}"</font></div><div class="gmail_default" style=""><font face="monospace"><br></font></div><div class="gmail_default" style=""><font face="monospace"># months</font></div><div class="gmail_default" style=""><font face="monospace">_MM   = "(0[1-9]|1[012])"<br></font></div><div class="gmail_default" style=""><font face="monospace"><br></font></div><div class="gmail_default" style=""><font face="monospace"># days</font></div><div class="gmail_default" style=""><font face="monospace">_DD   = "(0[1-9]|[12]\d|3[01])"<br></font></div><div class="gmail_default" style=""><font face="monospace"><br></font></div><div class="gmail_default" style="font-family:monospace,monospace">ymdt = _YYYY + '[' + _INTERNALSEP <a class="gmail_plusreply" id="gmail-plusReplyChip-3">+</a></div><div class="gmail_default" style="font-family:monospace,monospace">                     _MM          <a class="gmail_plusreply" id="gmail-plusReplyChip-5">+</a></div><div class="gmail_default" style="font-family:monospace,monospace">                     _INTERNALSEP <a class="gmail_plusreply" id="gmail-plusReplyChip-6">+</a></div><div class="gmail_default" style="font-family:monospace,monospace">               ']'{0,1)</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">For the whole file, RE I used</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">ymdthf = _FRSEP + ymdt + _BASEP</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">where FRSEP is front separator which includes</div><div class="gmail_default" style="font-family:monospace,monospace">a bunch of possible separators, excluding numbers and letters, or-ed</div><div class="gmail_default" style="font-family:monospace,monospace">with the up arrow "beginning of line" RE mark. BASEP is back separator</div><div class="gmail_default" style="font-family:monospace,monospace">is same as FRSEP with "^" replaced with "$".</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">I then aimed ymdthf at "data" the thing that represents</div><div class="gmail_default" style="font-family:monospace,monospace">the entire memory mapped file (where there is only one beginning</div><div class="gmail_default" style="font-family:monospace,monospace">and one end).</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">Again, I say validating an RE is as difficult or more than writing one.</div><div class="gmail_default" style="font-family:monospace,monospace">What does it miss?</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">Dates are an excellent test ground for RE's. Latitude and longitude is another.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">Ed</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">PS: I thought I was on the COFF mailing list. I received this email</div><div class="gmail_default" style="font-family:monospace,monospace">by direct mail to from Larry. I haven't seen any other comments</div><div class="gmail_default" style="font-family:monospace,monospace">on my submission. I might have unsubscribed, but now I regret it. Dear powers</div><div class="gmail_default" style="font-family:monospace,monospace">that be: Please resubscribe me.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div></div></div>