m{ ( [^']*? (?: '[^']*' [^']*? )* ) XX | (.+) $ }x