$s =~ s/(?<=(?## $ perl -wle'use charnames (); for (0..255) { chr($_) =~ /\pP/ and print chr($_) ," ($_): ", charnames::viacode($_) }' ! (33): EXCLAMATION MARK " (34): QUOTATION MARK # (35): NUMBER SIGN % (37): PERCENT SIGN & (38): AMPERSAND ' (39): APOSTROPHE ( (40): LEFT PARENTHESIS ) (41): RIGHT PARENTHESIS * (42): ASTERISK , (44): COMMA - (45): HYPHEN-MINUS . (46): FULL STOP / (47): SOLIDUS : (58): COLON ; (59): SEMICOLON ? (63): QUESTION MARK @ (64): COMMERCIAL AT [ (91): LEFT SQUARE BRACKET \ (92): REVERSE SOLIDUS ] (93): RIGHT SQUARE BRACKET _ (95): LOW LINE { (123): LEFT CURLY BRACKET } (125): RIGHT CURLY BRACKET ¡ (161): INVERTED EXCLAMATION MARK « (171): LEFT-POINTING DOUBLE ANGLE QUOTATION MARK · (183): MIDDLE DOT » (187): RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK ¿ (191): INVERTED QUESTION MARK