In the description we do not distinguish between the functionality provided by the body of GAP and by its share libraries.
GAP knows how to construct a number of well-known groups such as symmetric and classical groups.
Of course the range of applicability of the particular functions depends very much on the order and structure of the group. GAP tries automatically to select a good method but the user can take over full control of this selection of methods. There are also tasks for which no polynomial time methods are known and for which GAP relies on partition backtrack methods, for example centralizer, normalizer or intersection of subgroups. A recent addition is a vast number of routines to recognize isomorphism types of matrix groups using the Aschbacher classification. There also are share packages for a double coset enumerator, a Knuth-Bendix and automatic groups methods.