in reply to Problems With Pattern Matching

You want to use s///s instead of just s///, since . doesn't match newlines without the /s:
s/\bvalues\b\s*(.*)\;//s

The \ is unnecessary in \;:
s/\bvalues\b\s*(.*);//s

The regexp might match more than you want it to match, unless you change the .* to .*?:
s/\bvalues\b\s*(.*?);//s

Are you trying to capture (set $1) with the parens, or trying to match the parens in $line_data? If the latter, than you need to escape the parens in the regexp with a \:
s/\bvalues\b\s*\(.*?\);//s
Doing so also makes the second \b redundant, so you end up with:
s/\bvalues\s*\(.*?\);//s;