Manual:$wgAutopromote

Details
This array contains criteria of automatic promotion. The syntax is: cond here may be:
 * A single condition
 * A set of conditions (see next section)

Set of conditions
Sets of conditions have the following syntax: There are 4 operands available: The sets of conditions are evaluated recursively, so you can use nested sets of conditions linked by operands.
 * & (AND) — promote if user matches all conditions
 * | (OR) — promote if user matches any condition
 * ^ (XOR) — promote if user matches only one of two conditions
 * ! (NOT) &mdash; promote if user matches no conditions.

Conditions with and without arguments
Each condition can be written in two forms:

Possible conditions
Possible conditions (defined in Defines.php; extensions may add more through the AutopromoteCondition hook):
 * APCOND_EDITCOUNT: minimum number of edits necessary
 * APCOND_AGE: minimum number of seconds since registration
 * APCOND_EMAILCONFIRMED: email address has been confirmed
 * APCOND_INGROUPS: list of groups the user must be in
 * APCOND_ISIP: user has a specific IP address
 * APCOND_IPINRANGE: user is in a specific IP range
 * APCOND_AGE_FROM_EDIT: minimum number of seconds since first edit
 * APCOND_BLOCKED: account is blocked (added in v1.16: )

Caveats
Autopromotion doesn't actually add users to a group; MediaWiki will check whether a user meets the conditions for autopromotion whenever it checks the user's rights or effective groups. This means that a user will only appear to be in a group on Special:ListUsers if they were added to it through Special:UserRights. It also means you can't directly remove a user from an autopromotion group through Special:UserRights: $wgRevokePermissions might be useful for you, or if you're not using MediaWiki 1.16+, a workaround is available.

Example
If you wanted to autopromote each user to captain upon his having both confirmed his email address and either made at least 100 edits or registered his account at least 60 seconds ago, you would use: