#Square brackets ([ and ]) delimits a range of characters.! [aA] means either a or A. [a-z] matches any lowercase character. [0-9] matches any digit. [0-9a-zA-Z] for characters commonly used in variable names. You can combine the brackets with other patterns. Pattern Interpretation /[aA]/ Matches against a or A. /[aA]+/ Matches one or more instances of a or A. /[aA]*/ Matches zero or more instances of a or A. /[aA]?/ Matches zero or one instance of a or A. /[^aA]/ Returns true if any character is found that is not a or A. /[aA]|[bB]/ Matches an instance of a or A or b or B; redundant in this case, as it is the same as /[aAbB]/. #The [] special characters enable you to define patterns that match one of a group of alternatives.! For example, the following pattern matches def or dEf: /d[eE]f/ #Combine [] with + to match a sequence of characters of any length.! /d[eE]+f/ This matches all of the following: def dEf deef dEef dEEEeeeEef #The bracketed character class! while(){ print if /[A-Za-z0-9_]/; } __DATA__ Tom 101 Jack 201 Nart 301