There is currently no extension that allows users to create their own groups/communities, however if the groups are managed by the administration you have a few options:
An admin can create a tag and a group manually, configure permissions so that only that group sees the tag, then manually assign the group to members. This will work for low number of groups, but will likely be unmanageable for large number of groups.
If the number of groups is small but the number of users is great, an extension like https://discuss.flarum.org/d/24627-group-invitation can help users join the groups themselves. Unfortunately that extension currently doesn't offer a way to quit a group.
I believe there's another extension that allows choosing groups during signup but I can't find it right now.
A more advanced extension could be created to create a pair of groups and tags at a user's request. It's also definitely possible to make something even more advanced for "sub-communities" but it will probably require a lot of work. It's something I have wanted to work on for a while but it's huge so it would probably be a good subject for a premium extension.