About custom user profile

Is it possible to set up a few different user groups and request different profile fields on the user registration form for each group? First, visitors need to choose which group he/she wants to sign up, then he/she will be directed to a custom registration page that has fields set up for the group type he/she chose.

When users from different user group login to their own accounts and go to update their own profile, they only see the profile fields that are specified for this group. Can this be done too?

Thank you!