I am not quite agreeable to the statement about what '.*' should match.

For my understanding '.' should ignore newlines always but if the operator /s is used. That means that '.+' and '.*' are just multiple searches of '.' and should still ignore newlines.

Now I understand $ and \z as the following... $ means to matches both the end and the newline before - quote perldoc - and \z only the end but not the newline.
print "foo matched\n"         if "foo\n"     =~  /^foo$/;
print "bar matched\n"         if "bar\n"     =~  /^bar$ \n/x;   # $ before end or newline
print "baz doesn't matched\n" if "baz\n"     !~  /^baz\z/;
print "foobar matched\n"      if "foobar\n"  =~  /^foobar\n\z/; # \z after newline

print "match foo\n"         if "foo\n" =~ /.*$/;     # .* ignore newline and $  is before newline
print "doesn't match bar\n" if "bar\n" !~ /.*\z/;    # .* ignore newline and \z is after  newline
print "match baz\n"         if "baz\n" =~ /.?\z/;    # but what the hell happends here?

for ( qr/(.?)\n\z/, qr/(.?)\z/ ) {
   "hello world\n" =~ $_;
   print "-$1-\n";
}

-d-
--
It seems that '.?' ignore the newline as expected and search on after the newline with '.?\z', because it searches _until_ '\z'. Also it seems that '.*' matches until the newline and not between '\n' and '\z'. '.*' is greedy, '.?' not. Maybe I missunderstand it.

In reply to Re^2: Strange regex to test for newlines: /.*\z/ by bloonix
in thread Strange regex to test for newlines: /.*\z/ by betterworld

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.