PermGroupOps.SubgroupProperty( G, prop ) 
PermGroupOps.SubgroupProperty( G, prop, K )
PermGroupOps.SubgroupProperty   returns  the   subgroup  U   of   the
permutation group  G of  all elements in G that satisfy prop, i.e.,
the  subgroup  of  all elements  g in G  such  that  prop(g) is
true.  prop must be a function of  one  argument  that returns either
true or false  when applied  to an element  of  G.  Of  course  the
elements   that   satisfy   prop   must  form   a   subgroup  of   G.
PermGroupOps.SubgroupProperty builds a stabilizer chain for U.
    gap> S8 := Group( (1,2), (1,2,3,4,5,6,7,8) );;  S8.name := "S8";;
    gap> Size(S8);
    40320
    gap> V := Subgroup( S8, [(1,2),(1,2,3),(6,7),(6,7,8)] );;
    gap> Size(V);
    36
    gap> PermGroupOps.SubgroupProperty( S8, g -> V ^ g = V );
    Subgroup( S8, [ (7,8), (6,7), (4,5), (2,3)(4,5)(6,8,7), (1,2),
      (1,6,3,8)(2,7) ] )
    # the normalizer of 'V' in 'S8' 
PermGroupOps.SubgroupProperty  first  computes a  stabilizer chain  for
G, if necessary.  Then it performs a backtrack search  through  G for
the elements  satisfying prop, i.e.,  enumerates all elements of G as
described in  section  Stabilizer Chains,  and  applies prop to each,
adding elements for which prop(g) is true to  the  subgroup  U.
Once U has  become non-trivial, it is used to eliminate whole cosets of
stabilizers  in the stabilizer  chain  of  G  if  they  cannot  contain
elements  with  the  property  prop that are not already  in U.  This
algorithm is described in detail in But82.
This search will of course take quite a while if G is large. To speed up the computation you may pass a subgroup K of U as optional third argument.
Passing the subgroup V itself, speeds up the computation in this example by a factor of 2.
    gap> K := Subgroup( S8, V.generators );;
    gap> PermGroupOps.SubgroupProperty( S8, g -> V ^ g = V, K );
    Subgroup( S8, [ (1,2), (1,2,3), (6,7), (6,7,8), (2,3), (7,8), (4,5),
      (1,6,3,8)(2,7) ] ) 
GAP 3.4.4