Your non-greedy quantifiers won’t work like that. In both cases the lazy quantifier is followed by either nothing or only an optional atom. A non-greedy quantifier will try to stop matching as soon as it can; if *? is the last thing in the pattern, it will always successfully match nothingness and then, because nothing follows that forces it to consume more of the input, will be content to stop there. The same goes when it’s followed by a character that is made optional by ? quantifier: the *? quantifier matches nothingness, and the ? quantifier then fails to match, but that is ok, so the match succeeds, leaving you with an empty string as the capture.

(I can only recommend Mastering Regular Expressions (the owl book) – you don’t understand regular expressions until you've read that book.)

I don’t know whether you have chopped down your code any, so it might be something else that’s the culprit. You provide almost no example data to look at, so it’s hard to know what’s really going on.

Makeshifts last the longest.


In reply to Re: Help with pattern matching by Aristotle
in thread Help with pattern matching by mhearse

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.