use strict; use warnings; for ( 'oh {hello} there', 'oh {hello there', 'oh hello there', 'oh hello} there', ) { print '', ( $_ =~ / (\{)? # optional opening brace hello # .. followed by 'hello' (?(1)\}) # a closing brace iif the open brace was there /x ? 'YEP ' : 'NOPE' ), " - $1\n"; }