in reply to Regexp question

You've run into the "greedy" behaviour of * - it grabs the longest possible match.

perlre explains it well.

The workaround is to modify the * to be non-greedy, by adding a ?

$c_code =~ m/name="challenge" value="(.*?)"/;

Mike