Hi Bill,

Please correct my notes.
Many thanks,
-T



Explanation:
my @y = $x ~~ m:g/ <?before ^ | download > .*? <?before \> | \h+ > /;

`m:g`     # match and global
`\...\`   # the constrains (beginning and end) of the match
`<...>`   # constraints of instructions inside the match



First instruction: `<?before ^ | download >`

`?download ^` # positive look-behind, match but don`t capture `download `
                  # `^` means "look behind"

  `|`             # This is logical "OR"

`download ` # positive look-behind, match but don`t capture `download `
   summary: capture everything behind `before ` or capture just `download`


Second instruction: `.*?`
`.*?` # any-character, one-or-more, frugal up to the third instruction

Third instruction: `<?before \> | \h+ >`
`<?before \>` # positive look-ahead, match but don`t capture `download \>` # Note that the `\` in `\>` is escaping the `>` and is removing # the `>` from the instructions constraints and making is part
                  # of the match

  `|`             # This is logical "OR"

  `\h+ `          # one-or-more horizontal whitespace character

summary: capture everything before `before` or one-or-more whitespace characters


Reply via email to