From: Tim Bradshaw on
On 2010-03-01 14:53:54 +0000, ccc31807 said:

> I'd like to offer some perspective to this, without insulting or
> casting aspersions.

You'll probably find that many CLL people understand regular
expressions fairly well...

> However, density in and of
> itself is no reason to object to a language, any more than verbosity.

I think it probably is, actually. I'm guessing (though I don't have
any evidence to hand) that there are quite strong arguments that
languages which are both too dense and too sparse are hard to deal with
by huans.

From: ccc31807 on
On Mar 1, 10:32 am, Tim Bradshaw <t...(a)tfeb.org> wrote:
> I think it probably is, actually.  I'm guessing (though I don't have
> any evidence to hand) that there are quite strong arguments that
> languages which are both too dense and too sparse are hard to deal with
> by huans.

And maybe by humans as well. ;-)

From: Ron Garret on
In article
<3bb8c3f7-ba67-4944-b236-e998684adb56(a)g19g2000yqe.googlegroups.com>,
ccc31807 <cartercc(a)gmail.com> wrote:

> On Feb 27, 3:08 pm, Ron Garret <rNOSPA...(a)flownet.com> wrote:
> > It boggles my mind that the same people who
> > complain about the aesthetics (or lack thereof) of parens in
> > S-expressions will accept something like this:
> >
> > (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\
> > x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e
> > -\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*
> > [a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|
> > 2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e
> > -\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
....
> I read through the RE example above, and it would take a bit of time
> to figure out exactly what it did

It detects valid email addresses. I got it from this page:

http://regexlib.com/DisplayPatterns.aspx

But I could have used this:

http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html

Here's the equivalent CL-PPCRE parse-tree representation of the shorter
version:

(:SEQUENCE
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:CHAR-CLASS (:RANGE #\a #\z) (:RANGE #\0 #\9) #\! #\# #\$ #\% #\&
#\' #\*
#\+ #\/ #\= #\? #\^ #\_ #\` #\{ #\| #\} #\~ #\-))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 1 NIL
(:CHAR-CLASS (:RANGE #\a #\z) (:RANGE #\0 #\9) #\! #\# #\$ #\%
#\& #\'
#\* #\+ #\/ #\= #\? #\^ #\_ #\` #\{ #\| #\} #\~ #\-))))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION
(:CHAR-CLASS (:RANGE #\^A #\Backspace) #\PageUp #\Page
(:RANGE #\^N #\Us) #\! (:RANGE #\# #\[) (:RANGE #\] #\Rubout))
(:SEQUENCE #\\
(:CHAR-CLASS (:RANGE #\^A #\Tab) #\PageUp #\Page
(:RANGE #\^N #\Rubout))))))
#\")))
#\@
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE (:CHAR-CLASS (:RANGE #\a #\z) (:RANGE #\0 #\9))
(:GREEDY-REPETITION 0 1
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 NIL
(:CHAR-CLASS (:RANGE #\a #\z) (:RANGE #\0 #\9) #\-))
(:CHAR-CLASS (:RANGE #\a #\z) (:RANGE #\0 #\9)))))
#\.)))
(:CHAR-CLASS (:RANGE #\a #\z) (:RANGE #\0 #\9))
(:GREEDY-REPETITION 0 1
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 NIL
(:CHAR-CLASS (:RANGE #\a #\z) (:RANGE #\0 #\9) #\-))
(:CHAR-CLASS (:RANGE #\a #\z) (:RANGE #\0 #\9))))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 3 3
(:GROUP
(:SEQUENCE
(:GROUP
(:ALTERNATION (:SEQUENCE "25" (:CHAR-CLASS (:RANGE #\0 #\5)))
(:SEQUENCE #\2 (:CHAR-CLASS (:RANGE #\0 #\4))
(:CHAR-CLASS (:RANGE #\0 #\9)))
(:SEQUENCE (:GREEDY-REPETITION 0 1 (:CHAR-CLASS #\0 #\1))
(:CHAR-CLASS (:RANGE #\0 #\9))
(:GREEDY-REPETITION 0 1 (:CHAR-CLASS (:RANGE #\0 #\9))))))
#\.)))
(:GROUP
(:ALTERNATION (:SEQUENCE "25" (:CHAR-CLASS (:RANGE #\0 #\5)))
(:SEQUENCE #\2 (:CHAR-CLASS (:RANGE #\0 #\4))
(:CHAR-CLASS (:RANGE #\0 #\9)))
(:SEQUENCE (:GREEDY-REPETITION 0 1 (:CHAR-CLASS #\0 #\1))
(:CHAR-CLASS (:RANGE #\0 #\9))
(:GREEDY-REPETITION 0 1 (:CHAR-CLASS (:RANGE #\0 #\9))))
(:SEQUENCE
(:GREEDY-REPETITION 0 NIL
(:CHAR-CLASS (:RANGE #\a #\z) (:RANGE #\0 #\9) #\-))
(:CHAR-CLASS (:RANGE #\a #\z) (:RANGE #\0 #\9)) #\:
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:ALTERNATION
(:CHAR-CLASS (:RANGE #\^A #\Backspace) #\PageUp #\Page
(:RANGE #\^N #\Us) (:RANGE #\! #\Z) (:RANGE #\S #\Rubout))
(:SEQUENCE #\\
(:CHAR-CLASS (:RANGE #\^A #\Tab) #\PageUp #\Page
(:RANGE #\^N #\Rubout)))))))))
#\]))))

Which one would you rather try to debug?

rg

---

Just for the record, here's the parse tree for the long monster regexp:

(:SEQUENCE
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\ #\"
#\. #\[
#\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\ #\"
#\.
#\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))))
#\@
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\ #\"
#\. #\[
#\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\ #\"
#\.
#\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))))))
(:SEQUENCE
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\ #\"
#\.
#\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))
#\<
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GREEDY-REPETITION 0 1
(:GROUP
(:SEQUENCE #\@
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return
#\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE ",@"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return
#\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\
#\" #\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return
#\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))))))))
#\:
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\ #\"
#\. #\[
#\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\ #\"
#\.
#\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))))
#\@
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\ #\"
#\. #\[
#\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\ #\"
#\.
#\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))))
#\>
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:SEQUENCE
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\ #\"
#\. #\[
#\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\ #\"
#\. #\[
#\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))
#\:
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GREEDY-REPETITION 0 1
(:GROUP
(:SEQUENCE
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\"
#\. #\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))))
#\@
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\"
#\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return
#\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))))))
(:SEQUENCE
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))
#\<
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GREEDY-REPETITION 0 1
(:GROUP
(:SEQUENCE #\@
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return
#\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\]
#\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE ",@"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\]
#\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\;
#\:
#\\ #\" #\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\,
#\; #\:
#\\ #\" #\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION
(:INVERTED-CHAR-CLASS #\[ #\] #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))))))))
#\:
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\"
#\. #\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))))
#\@
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\" #\.
#\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\: #\\
#\"
#\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return
#\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))))
#\>
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\, (:GREEDY-REPETITION 0 NIL :WHITESPACE-CHAR-CLASS)
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return
#\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))))
#\@
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return
#\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\]
#\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))))))
(:SEQUENCE
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\
#\" #\. #\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))
#\<
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GREEDY-REPETITION 0 1
(:GROUP
(:SEQUENCE #\@
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\]
#\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\;
#\:
#\\ #\" #\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\,
#\; #\:
#\\ #\" #\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION
(:INVERTED-CHAR-CLASS #\[ #\] #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE ",@"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\;
#\:
#\\ #\" #\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\,
#\; #\:
#\\ #\" #\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION
(:INVERTED-CHAR-CLASS #\[ #\] #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\,
#\; #\:
#\\ #\" #\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\,
#\;
#\: #\\ #\" #\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION
(:INVERTED-CHAR-CLASS #\[ #\] #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))))))))
#\:
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return #\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE #\.
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\;
#\: #\\
#\" #\. #\[ #\])))))
(:SEQUENCE #\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:ALTERNATION (:INVERTED-CHAR-CLASS #\" #\Return
#\\)
(:SEQUENCE #\\ :EVERYTHING)
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))
#\"
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))))))))
#\@
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
(:GROUP
(:ALTERNATION
(:SEQUENCE
(:GREEDY-REPETITION 1 NIL
(:INVERTED-CHAR-CLASS #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\] #\ (:RANGE #\Null #\^Y)))
(:GROUP
(:ALTERNATION
(:GREEDY-REPETITION 1 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab))))
:MODELESS-END-ANCHOR
(:POSITIVE-LOOKAHEAD
(:CHAR-CLASS #\[ #\" #\( #\) #\< #\> #\@ #\, #\; #\:
#\\ #\"
#\. #\[ #\])))))
(:SEQUENCE #\[
(:GREEDY-REPETITION 0 NIL
(:REGISTER
(:ALTERNATION (:INVERTED-CHAR-CLASS #\[ #\] #\Return
#\\)
(:SEQUENCE #\\ :EVERYTHING))))
#\]
(:GREEDY-REPETITION 0 NIL
(:GROUP
(:SEQUENCE
(:GREEDY-REPETITION 0 1
(:GROUP "

"))
(:CHAR-CLASS #\ #\Tab)))))))
(
From: Slobodan Blazeski on
On Feb 25, 7:47 pm, piscesboy <oraclmas...(a)gmail.com> wrote:
> On Feb 25, 11:45 am, ccc31807 <carte...(a)gmail.com> wrote:
>
>
>
> > On Feb 25, 11:34 am, Zach Beane <x...(a)xach.com> wrote:
>
> > > > I make my living as a Perl programmer, munging data. Perl doesn't have
> > > > an interactive environment like the Lisp REPL. However, the cycle of
> > > > writing, testing, and running code is almost identical.
>
> > > Not in my experience.
>
> > Maybe that's a function of working habits rather than languages or
> > programming environments. I have developed a habit of write-switch-
> > run, and this is true with Perl, C, Java, and Lisp (although Java is
> > different in that I customarily write test cases for classes before I
> > write the class so I am not strictly running the code directly.)
>
> > > I sometimes see Perl environments corrupted by unexpected PATH or
> > > PERLLIB environment variables, leading to running an unexpected version
> > > of Perl or an unexpected version of a module.
>
> > I have been fortunate to control every machine that I have developed
> > on, so I've never had this particular problem, but with Java, yes, you
> > have to fiddle with the environment, e.g., CLASSPATH.
>
> > CC.
>
> Tangentially on the OP,
>
> Since I am learning Lisp and CLOS in particular, what would be the
> best, most direct route to doing so? The least painful method? Also
> the cheapest method? One that doesn't involve enrolling in school or
> taking classes?
>
> There's lots of resources out there in the form of online tutorials,
> code examples, etc for learning CLOS syntax, etc, but is there some
> simple resource available that conveniently catalogs functions and
> classes, their parameters, their uses, which packages they belong to
> etc...?
>
> I've been programming in Lisp for several months now, in depth, and I
> still have a hard time tracking down function names, class names,
> etc...through apropos, describe, and the various other documentation
> functions built into the REPL (I currently have clisp and ccl
> installed along with SLIME), and it is a real pain to track down
> functions that often have incomplete or sparse documentation if it
> exists.
>
> Often, it is through simple trial and error that I find functions for
> which I spent the last few hair pulling days that already exist in the
> existing Lisp packages, negating a lot of my work moot. It would be
> nice if the documenation and usage of all functions and classes in the
> standard user package and CLOS were documented mainly so I don't waste
> time writing something that already exists in a package.
>
> Forgive me if this is already the case, and if it is then point me in
> that direction.

Nick Levine Fundamentals of CLOS is a good tutorial
http://www.ravenbrook.com/doc/2003/07/15/clos-fundamentals/ but you
won't need much CLOS anyway. Unless your name is Pascal Constanza of
course.

Bobi
From: Giovanni Gigante on

> Which one would you rather try to debug?


None!!!

Anyway, I don't understand what you're trying to prove.
It is certainly possible to write a regexp compiler that transform some
kind of wordy array-and-hashrefs perl structure into a regexp, but the
fact that no one uses such a tool (and not just in Perl) seem to
indicate that the traditional form of the unix regexp, which perl
extends, is probably a good compromise for most of the cases [1]. The
RFC-822 case certainly is not a typical example.

But if the real point is that regexp are "Not Lispy Enough", then of
course I wholeheartedly agree. :-)

[1] A fact that probably supports Erik's point, btw.