$re = '/([2-6]ª[-feira]{0,})|^(segunda|terça|quarta|quinta|sexta)\b[-feira]{0,}/m';
$str = '2ª
3ª
4ª
5ª
6ª
2ª-feira
3ª-feira
4ª-feira
5ª-feira
6ª-feira
segunda
terça
quarta
quinta
sexta
segunda-feira
terça-feira
quarta-feira
quinta-feira
sexta-feira
____________Não_
oitava-feira
sexta-
sextafeira
-feira
feira
22ª
1ª
7ª
ª
2-feira
aquartado
sextavado';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php