Yes, regex matching is really good at discovering either complete success or no possible success. It's not as good at "chewing up" an input as far as possible then stopping so you can see what to chew up next. It can do it, but it's not obvious what kind of looping structure you'd need for most simple projects.

The book, Mastering Regular Expressions, has quite a few real-world and contrived examples of how to do this token-by-token parsing, chewing up the input and accepting different constructs according to state.

The module, Parse::RecDescent, has a lot of power in developing parsing logic from a grammar of possible valid inputs. If you've used YACC, you'll find this familiar. If you've not explored such structured grammars, it can be daunting without examples.

--
[ e d @ h a l l e y . c c ]


In reply to Re: Parsing with regular expressions by halley
in thread Parsing with regular expressions by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.