Challenge 1: Extract Prices Without the Currency Symbol — Possible Solution ==================================================================== use strict; use warnings; use feature 'say'; my $text = "Items: \$12, \$8, \$45"; my @prices = $text =~ /(?<=\$)(\d+)/g; say "@prices"; Output: 12 8 45 WHY THIS WORKS AS AN ANSWER ------------------------------ (?<=\$)(\d+) reuses the chapter's own positive-lookbehind example directly, just applied to three prices instead of one — (?<=\$) asserts that a literal $ character immediately precedes the match (the backslash escapes $ so it's treated literally rather than as an end-of-string anchor), without that $ itself being included in the captured text, exactly the "asserts context without consuming it" behavior the chapter describes. Because the lookbehind here is a single, FIXED-width character (\$, always exactly one character), it avoids the chapter's own warn-box limitation about lookbehind needing fixed width — a variable-length assertion like (?<=\$+) would not be safe to use here. /g reuses the global modifier from Course 1, Chapter 6, so all three matching numbers in the string are found and returned as a list, not just the first one — my @prices = ... (list context, per Course 1 Chapter 3's own context rules) collects all of them, and "@prices" interpolates the whole array space-separated for the final printed output.