s/^\s+(.*?)\s+$/$1/; # fails sometimes s/^\s*(.*?)\s*$/$1/; # succeeds, but slow s/^\s*(.*\S)\s*$/$1/; # fails sometimes s/^\s*//, s/\s*$//; # succeeds, but WHY use * ? s/^\s+//, s/\s+$//; # succeeds, but is it good? #### $_ = "a b c d "; # 1, 2, 3, 4 spaces s/\s+$//; =pod A = \s+ B = $ X = fail "a b c d " AX AAX AAAX AAAA #### ($_ = reverse) =~ s/^\s+//; $_ = reverse; #### 1 while s/\s$//;