Brian Palmer wrote:
> Hey Rick,
>
> On Aug 4, 2006, at 1:48 PM, Rick DeNatale wrote:
>
> > I just ran across this, and can't figure out what's happening.  the
> > show_regexp method is as shown on p73 of the Pickaxe 2nd ed.
> >
> > irb(main):013:0> show_regexp("comparison is", /[:alpha:][^.?!\s'"]*/)
> > => "com<<parison>> is"
> > irb(main):014:0> show_regexp("comparison is", /[:alpha:][^\s]*/)
> > => "com<<parison>> is"
> > irb(main):015:0> show_regexp("comparison is", /[:alpha:][\S]*/)
> > => "com<<parison>> is"
> > irb(main):016:0> show_regexp("comparison is", /[a-zA-Z][\S]*/)
> > => "<<comparison>> is"
> > irb(main):017:0> show_regexp("comparison is", /[a-zA-Z][^\s]*/)
> > => "<<comparison>> is"
> >
> > It looks like the Posix :alpha: character class doesn't include c,
> > o, or m?!?
> >
> > Or am I missing something?
> >
> > --
> > Rick DeNatale
> >
>
>
> You need another pair of brackets around the :alpha:
>
> So like this:
>
> show_regexp("comparison is", /[[:alpha:]][\S]*/)
>
> That tripped me up when I first used the Posix classes in Ruby, too.

It's not just Ruby that requires the extra brackets.

echo BEGIN{print "123 f 987" ~ /[[:alpha:]]/} | gawk -f -
1