in reply to Re^2: Help combining two regex's into one
in thread Help combining two regex's into one

From perlre:

I suspect the K was not an accidental mnemonic device for its \Keeping operation...

Replies are listed 'Best First'.
Re^4: Help combining two regex's into one
by AnomalousMonk (Archbishop) on Jan 16, 2013 at 04:19 UTC

    From perlre, identical in both Strawberry 5.14.2.1 local docs and 5.16.2 on-line docs (emphases added):

    • \K     [6]   Keep the stuff left of the \K, don't include it in $&
      (Note [6] simply refers to the discussion in the "Look-Around Assertions" section.)
    • From "Look-Around Assertions":
      There is a special form of this construct, called "\K", which causes the regex engine to "keep" everything it had matched prior to the "\K" and not include it in $&.

    Hmmm...   I suppose when I read these sections heretofore, my attention was drawn to the "don't include..." clauses and I more or less ignored the "left of" and "prior to" statements. My naive association of "keep" is with inclusion: in this specific instance, everything to the right of  \K is (or could be) included in $&. The docs seem to be using "keep" in the sense of "keep back", i.e., "to exclude": everything to the left of  \K is "kept back" from inclusion in $&. Perhaps they are discussing the behavior  \K in the context of substitution: everything left of the  \K is not included in $& and so cannot be zapped by substitution: it is "kept safe" from substitution. But  \K is equally valid and useful in both  m// matching and  s/// substitution, so...

    I can't say I would agree with the perhaps subtle interpretation given to "keep" in the documentation, but it is fully clarified by the "don't include" language and by the examples, so I doubt this qualifies as a doc-bug.

    Update: LanX: Almost as confusing like using single line and multi line modifier at the same time... ++That!

      ...everything left of the \K is not included in $& and so cannot be zapped by substitution: it is "kept safe" from substitution.

      Well said...

      Given this, I might read perlre as "Keep the stuff left of the \K, i.e., don't include it in $&". Put another way, if the stuff left of \K were included in $&, it wouldn't be kept--and I believe this is the essence of your quote above.

      Got a great laugh from your Update! Thanks for that...

Re^4: Help combining two regex's into one
by LanX (Saint) on Jan 16, 2013 at 03:11 UTC
    Just a matter of perspective: the left part which is kept unchanged is the one ignored from substitution, because the right part is kept in '$&'.

    So both parts are kept, just in different aspects.

    Almost as confusing as using single line and multi line modifiers at the same time...