There are a few problems in your code:
First of all, [30-33] does NOT match 30, 31, 32; it matches any of the single characters 3, 0 - 3, 3, which is the same as [0-3]. (The expression [...] is a character class, meaning that it matches only a single character).
Secondly, when you do /50[0-2]|5[30-33]/, you are trying to match 4 characters in a row: 5, 0, 0-2 or 5, 0-3.
I think what you want instead is:
if ($tag =~ /^(50[0-2])|(53[0-2])$/)
or more simply:
if ($tag =~ /^(50|53)[0-2]$/)
or even:
if ($tag =~ /^5(0|3)[0-2]$/) # Note the parentheses ( ) are optiona
+l
s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/
|