Thanks. No regexes involved, then. My confusion, partly, was because the "magical object" (MO), in addition to attributes you mention, also keeps value of global anchor position between global match invocations, even though temporary buffer is thrown away each time, as you explained. So, MO is smart enough to notice if referent has been changed to reset this anchor. But not smart enough to somehow employ COW (if it observes referent for changes anyway) to avoid physical copy on every dereference? I thought Perl scalar keeps offset and actual length of string, even though physical buffer may extend on either side? I.e. same as result of substr. OK, perhaps reality of MO is more complex than my simple model above, thanks for your answer, again.