better LOOSE regex and allow 'x' in canonical