#!/usr/bin/perl -w use Parse::RecDescent; use Data::Dumper; my $lexer = new Parse::RecDescent q { lex: token(s) token: /(I|you|he)\b/i | /(is|are)\b/ | 'dumbest' | 'Bill-loving' | 'clearly' | /the\b|a\b/ | /\w+/ | /\S+/ }; my $tokens = $lexer->lex(join "", ); print Data::Dumper->Dump($tokens); __DATA__ You are clearly the dumbest, Bill-loving script-kiddie I have ever seen!