Regex java
// Hacer un match exacto en groovy
'#AFFFFF' ==~ /(\s*)|(#[0-9a-fA-F]{6})/matches() retorna true si la cadena ENTERA hace match contra la expresión regular indicada, implicitamente agrega un ^ al inicio y un $ al final de la expresión regular
Pattern.matches(regex, text) o text.matches(regex): Busca si el texto hace match exacto contra la regexp.
find() intenta encontrar substrings que hagan match contra la expresión regular.
Pattern.compile(regex).matcher(text).find(): Busca si la cadena contiene la regex.
Ejemplo:
[a-z]+ con la cadena 123abc123 fallará utilizando el método matches() pero hará match utilizando el método find().